![]() |
NDEVR
API Documentation
|
A bitset that stores 8 bits (elements with only two possible values: 0 or 1, true or false, ...). More...
Public Member Functions | |
| constexpr | operator uint01 () const |
| Cast that converts the given to an uint01. | |
| constexpr BitFlag | operator& (const BitFlag &mask) const |
| Bitwise 'and' operator. | |
| constexpr BitFlag | operator& (uint01 mask) const |
| Bitwise 'and' operator. | |
| constexpr void | operator&= (const BitFlag &mask) |
| Bitwise 'and' assignment operator. | |
| constexpr void | operator&= (uint01 mask) |
| Bitwise 'and' assignment operator. | |
| constexpr void | operator() (const uint01 bit_index, bool value) |
| Operator used to set a bit in the bitflag to the given value Parameters: | |
| constexpr bool | operator[] (uint01 bit_index) const |
| Accesses the value at bit position specified by index. | |
| constexpr BitFlag | operator^ (const BitFlag &mask) const |
| Bitwise 'exclusive or' operator. | |
| constexpr BitFlag | operator^ (uint01 mask) const |
| Bitwise 'exclusive or' operator. | |
| constexpr void | operator|= (const BitFlag &mask) |
| Bitwise 'or' assignment operator. | |
| constexpr BitFlag | operator~ () const |
| Bitwise 'ones complement' operator. | |
Static Public Member Functions | |
| static constexpr BitFlag | merge (const BitFlag &value_a, const BitFlag &value_b, const BitFlag &mask) |
| Given bit value_a and bit value_b merges the bits such that indices with a mask of false will be set to value_a and values with a bit of mask 0 will be set to b in the returning bitflag. | |
| static constexpr BitFlag | merge (const BitFlag &value_a, const BitFlag &value_b, uint01 num_of_bits) |
| Given bit value_a and bit value_b merges the bits such that indices with a value lower than num_of_bits will be set to value_a and values with a bit of mask 0 will be set to b in the returning bitflag. | |
A bitset that stores 8 bits (elements with only two possible values: 0 or 1, true or false, ...).
The class emulates an array of 8 bool elements, but optimized for space allocation: generally, each element occupies only one bit (which, on most systems, is eight times less than the smallest elemental type: int01).
Each bit position can be accessed individually: for example, for a given bitset named foo, the expression foo[3] accesses its fourth bit, just like a regular array accesses its elements. But because no elemental type is a single bit, operator(bit, value) must be used to set values.
Bitsets have the feature of being able to be constructed from and converted to both integer values and binary strings (see its constructor and members to_ulong and to_string). They can also be directly inserted and extracted from streams in binary format
Definition at line 54 of file BitFlag.hpp.
|
inlinestaticconstexpr |
Given bit value_a and bit value_b merges the bits such that indices with a mask of false will be set to value_a and values with a bit of mask 0 will be set to b in the returning bitflag.
| [in] | value_a | A BitFlag to process where values of mask 0 will be used. |
| [in] | value_b | A BitFlag to process where values of mask 1 will be used. |
| [in] | mask | The mask used to determine which bits will be used. |
Definition at line 237 of file BitFlag.hpp.
|
inlinestaticconstexpr |
Given bit value_a and bit value_b merges the bits such that indices with a value lower than num_of_bits will be set to value_a and values with a bit of mask 0 will be set to b in the returning bitflag.
| [in] | value_a | A BitFlag to process where values of mask 0 will be used. |
| [in] | value_b | A BitFlag to process where values of mask 1 will be used. |
| [in] | num_of_bits | The bits used to use from value_a. |
Definition at line 250 of file BitFlag.hpp.
References cast().
|
inlineconstexpr |
Cast that converts the given to an uint01.
Definition at line 131 of file BitFlag.hpp.
|
inlineconstexpr |
Bitwise 'and' operator.
| [in] | mask | - The mask. |
Definition at line 174 of file BitFlag.hpp.
References cast().
|
inlineconstexpr |
Bitwise 'and' operator.
| [in] | mask | - The mask. |
Definition at line 194 of file BitFlag.hpp.
References cast().
|
inlineconstexpr |
Bitwise 'and' assignment operator.
| [in] | mask | The mask. |
Definition at line 155 of file BitFlag.hpp.
|
inlineconstexpr |
Bitwise 'and' assignment operator.
| [in] | mask | The mask. |
Definition at line 164 of file BitFlag.hpp.
|
inlineconstexpr |
Operator used to set a bit in the bitflag to the given value Parameters:
| [in] | bit_index | The index of the bit you wish to set |
| [in] | value | The value to set the bit |
Definition at line 119 of file BitFlag.hpp.
|
inlineconstexpr |
Accesses the value at bit position specified by index.
Note this function may have more overhead than traditional [] since an operation will be used. Can only be a read-only value.
| [in] | bit_index | The index of the bit you wish to access |
Definition at line 107 of file BitFlag.hpp.
|
inlineconstexpr |
Bitwise 'exclusive or' operator.
| [in] | mask | - The mask. |
Definition at line 184 of file BitFlag.hpp.
References cast().
|
inlineconstexpr |
Bitwise 'exclusive or' operator.
| [in] | mask | - The mask. |
Definition at line 204 of file BitFlag.hpp.
References cast().
|
inlineconstexpr |
Bitwise 'or' assignment operator.
| [in] | mask | The mask. |
Definition at line 140 of file BitFlag.hpp.
|
inlineconstexpr |
Bitwise 'ones complement' operator.
Definition at line 213 of file BitFlag.hpp.
References cast().