std::bitset::operator[] - cppreference.com (original) (raw)
(1) | (constexpr since C++11) |
---|---|
(2) | (constexpr since C++23) |
Accesses the bit at position pos.
Returns the value of the bit.
Returns an object of type std::bitset::reference that allows modification of the value.
If pos < size() is false, the behavior is undefined. | (until C++26) |
---|---|
If pos < size() is false: If the implementation is hardened, a contract violation occurs. Moreover, if the contract-violation handler returns under “observe” evaluation semantic, the behavior is undefined. If the implementation is not hardened, the behavior is undefined. | (since C++26) |
[edit] Parameters
pos | - | position of the bit to return |
---|
[edit] Return value
- The value of the requested bit.
[edit] Exceptions
Throws nothing.
[edit] Example
#include #include #include int main() { std::bitset<8> b1{0b00101010}; // binary literal for 42 for (std::size_t i = 0; i < b1.size(); ++i) std::cout << "b1[" << i << "]: " << b1[i] << '\n'; b1[0] = true; // modifies the first bit through bitset::reference std::cout << "After setting bit 0, b1 holds " << b1 << '\n'; }
Output:
b1[0]: 0 b1[1]: 1 b1[2]: 0 b1[3]: 1 b1[4]: 0 b1[5]: 1 b1[6]: 0 b1[7]: 0 After setting bit 0, b1 holds 00101011
[edit] Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR | Applied to | Behavior as published | Correct behavior |
---|---|---|---|
LWG 11 | C++98 | 1. the description was missing in the C++ standard2. there was only the non-const overload | 1. description added2. added the const overload |
LWG 907 | C++98 | the behavior of reading the bit at pos was equivalentto that of test(pos), but test() may throw exceptions | avoids mentioning test() |
[edit] See also
| | accesses specific bit (public member function) [edit] | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |