Defines a type that can be used to represent a set of constant values or any combination of those values. This trait is typically implemented by integer types, std::bitset, or enumerations (scoped and unscoped) with additional operator overloads.
[edit] RequirementsThe bitmask type supports a finite number of bitmask elements, which are distinct non-zero values of the bitmask type, such that, for any pair Ci and Cj, Ci & Ci is nonzero and Ci & Cj is zero. In addition, the value â0â is used to represent an empty bitmask, with no values set.
The bitwise operators operator&, operator|, operator^, operator~, operator&=, operator|=, and operator^= are defined for values of the bitmask type and have the same semantics as the corresponding built-in operators on unsigned integers would have if the bitmask elements were the distinct integer powers of two.
The following expressions are well-formed and have the following meaning for any BitmaskType:
Expression Meaning X |= Y sets the valueY
in the object X
X &= ~Y clears the value Y
in the object X
X & Y nonzero result indicates that the value Y
is set in the object X
Each representable bitmask element is defined as an inline(since C++17) constexpr value of the bitmask type.
[edit] Standard libraryThe following standard library types satisfy BitmaskType:
Code that relies on some particular implementation option (e.g. int n = std::ios_base::hex) is non-portable because std::ios_base::fmtflags is not necessarily implicitly convertible to int.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4