API Documentation
|
A bitset that stores 8 bits (elements with only two possible values: 0 or 1, true or false, ...). More...
#include <BitFlag.hpp>
Public Member Functions | |
constexpr | BitFlag () |
constexpr | BitFlag (bool flag) |
constexpr | BitFlag (sint04 flags) |
template<class t_type > | |
BitFlag (std::initializer_list< t_type > active_list) | |
constexpr | BitFlag (uint01 flags) |
uint01 | bits () const |
constexpr | operator uint01 () const |
Cast that converts the given to an uint01. | |
constexpr bool | operator!= (const BitFlag &other) const |
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== (const BitFlag &other) const |
constexpr bool | operator[] (uint01 bit_index) const |
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. | |
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) |
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
|
inlineconstexpr |
|
inlineexplicitconstexpr |
|
inline |
|
inlinenodiscard |
|
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. |
|
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. |
|
inlineconstexpr |
Cast that converts the given to an uint01.
|
inlineconstexpr |
Bitwise 'and' operator.
[in] | mask | - The mask. |
Bitwise 'and' operator.
[in] | mask | - The mask. |
|
inlineconstexpr |
Bitwise 'and' assignment operator.
[in] | mask | The mask. |
|
inlineconstexpr |
Bitwise 'and' assignment operator.
[in] | mask | The mask. |
|
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 |
|
inlineconstexpr |
|
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 |
Bitwise 'exclusive or' operator.
[in] | mask | - The mask. |
Bitwise 'exclusive or' operator.
[in] | mask | - The mask. |
|
inlineconstexpr |
|
inlineconstexpr |
Bitwise 'or' assignment operator.
[in] | mask | The mask. |
|
inlineconstexpr |
Bitwise 'ones complement' operator.