---
title: "ClikaRT::dtype::int2_t"
sidebar_label: "int2_t"
description: "Signed 2-bit integer, range [-2, 1]. 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`

Signed 2-bit integer, range \[-2, 1\]. Low 2 bits of a byte.

## Static member functions

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

<div class="api-signature">

`static` `constexpr` [`int2_t`](./int2_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 437

</div>

## Member functions

### int2\_t() {#int2_t}

<div class="api-signature">

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

</div>

<div class="api-declared">

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

</div>

### int2\_t(int8\_t) {#int2_t-2}

<div class="api-signature">

`constexpr` `explicit` `constexpr` **`int2_t`**(`std::int8_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 435

</div>

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

<div class="api-signature">

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

</div>

<div class="api-declared">

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

</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 433

</div>

## Friends

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

<div class="api-signature">

`friend` `bool` **`operator==`**([`int2_t`](./int2_t.md) `a`, [`int2_t`](./int2_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 438

</div>

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

<div class="api-signature">

`friend` `bool` **`operator!=`**([`int2_t`](./int2_t.md) `a`, [`int2_t`](./int2_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 439

</div>

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

<div class="api-signature">

`friend` `bool` **`operator<`**([`int2_t`](./int2_t.md) `a`, [`int2_t`](./int2_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 440

</div>

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

<div class="api-signature">

`friend` `bool` **`operator<=`**([`int2_t`](./int2_t.md) `a`, [`int2_t`](./int2_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 441

</div>

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

<div class="api-signature">

`friend` `bool` **`operator>`**([`int2_t`](./int2_t.md) `a`, [`int2_t`](./int2_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 442

</div>

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

<div class="api-signature">

`friend` `bool` **`operator>=`**([`int2_t`](./int2_t.md) `a`, [`int2_t`](./int2_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 443

</div>
