---
title: "ClikaRT::dtype::uint2_t"
sidebar_label: "uint2_t"
description: "Unsigned 2-bit integer, range [0, 3]. Low 2 bits of a byte."
---

<!-- Generated by tools/doxygen2mdx from Doxygen XML. Do not edit. -->

<span class="api-kind api-kind--struct">struct</span>

**Header:** `ClikaRT/compute/scalar_types.h`

Unsigned 2-bit integer, range \[0, 3\]. Low 2 bits of a byte.

## Static member functions

### from\_bits() {#from_bits}

<div class="api-signature">

`static` `constexpr` [`uint2_t`](./uint2_t.md) **`from_bits`**(`std::uint8_t` `b`) `noexcept`

</div>

Reinterpret the low 2 bits of `b` without conversion.

<div class="api-declared">

Declared in `ClikaRT/compute/scalar_types.h`, line 452

</div>

## Member functions

### uint2\_t() {#uint2_t}

<div class="api-signature">

`constexpr` `constexpr` **`uint2_t`**() `noexcept=default`

</div>

<div class="api-declared">

Declared in `ClikaRT/compute/scalar_types.h`, line 449

</div>

### uint2\_t(uint8\_t) {#uint2_t-2}

<div class="api-signature">

`constexpr` `explicit` `constexpr` **`uint2_t`**(`std::uint8_t` `v`) `noexcept`

</div>

Wrap an 8-bit value: keeps the low 2 bits (wraps; no saturation or range check).

<div class="api-declared">

Declared in `ClikaRT/compute/scalar_types.h`, line 450

</div>

### operator std::uint8\_t() {#operator-std-uint8-t}

<div class="api-signature">

`constexpr` `constexpr` **`operator std::uint8_t`**() `const noexcept`

</div>

<div class="api-declared">

Declared in `ClikaRT/compute/scalar_types.h`, line 451

</div>

## Data members

### bits {#bits}

<div class="api-signature">

`std::uint8_t` **`bits`** `= 0`

</div>

Raw encoding in the low 2 bits (the storage/ABI form).

<div class="api-declared">

Declared in `ClikaRT/compute/scalar_types.h`, line 448

</div>

## Friends

### operator== {#operator-eq}

<div class="api-signature">

`friend` `bool` **`operator==`**([`uint2_t`](./uint2_t.md) `a`, [`uint2_t`](./uint2_t.md) `b`) `noexcept`

</div>

Compares `a` and `b` by widened integer value.

<div class="api-declared">

Declared in `ClikaRT/compute/scalar_types.h`, line 453

</div>

### operator\!= {#operator-ne}

<div class="api-signature">

`friend` `bool` **`operator!=`**([`uint2_t`](./uint2_t.md) `a`, [`uint2_t`](./uint2_t.md) `b`) `noexcept`

</div>

Compares `a` and `b` by widened integer value.

<div class="api-declared">

Declared in `ClikaRT/compute/scalar_types.h`, line 454

</div>

### operator\< {#operator-lt}

<div class="api-signature">

`friend` `bool` **`operator<`**([`uint2_t`](./uint2_t.md) `a`, [`uint2_t`](./uint2_t.md) `b`) `noexcept`

</div>

Compares `a` and `b` by widened integer value.

<div class="api-declared">

Declared in `ClikaRT/compute/scalar_types.h`, line 455

</div>

### operator\<= {#operator-le}

<div class="api-signature">

`friend` `bool` **`operator<=`**([`uint2_t`](./uint2_t.md) `a`, [`uint2_t`](./uint2_t.md) `b`) `noexcept`

</div>

Compares `a` and `b` by widened integer value.

<div class="api-declared">

Declared in `ClikaRT/compute/scalar_types.h`, line 456

</div>

### operator\> {#operator-gt}

<div class="api-signature">

`friend` `bool` **`operator>`**([`uint2_t`](./uint2_t.md) `a`, [`uint2_t`](./uint2_t.md) `b`) `noexcept`

</div>

Compares `a` and `b` by widened integer value.

<div class="api-declared">

Declared in `ClikaRT/compute/scalar_types.h`, line 457

</div>

### operator\>= {#operator-ge}

<div class="api-signature">

`friend` `bool` **`operator>=`**([`uint2_t`](./uint2_t.md) `a`, [`uint2_t`](./uint2_t.md) `b`) `noexcept`

</div>

Compares `a` and `b` by widened integer value.

<div class="api-declared">

Declared in `ClikaRT/compute/scalar_types.h`, line 458

</div>
