|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member types | ||||
| Member functions | ||||
(until C++20) | ||||
| Element access | ||||
bitset::operator[] | ||||
| Capacity | ||||
| Modifiers | ||||
| Conversions | ||||
(C++11) | ||||
| Non-member functions | ||||
| Helper classes | ||||
(C++11) | ||||
bool operator[](std::size_t pos)const; | (1) | (constexpr since C++11) |
reference operator[](std::size_t pos); | (2) | (constexpr since C++23) |
Accesses the bit at positionpos.
Ifpos< size() isfalse, the behavior is undefined. | (until C++26) |
Ifpos< size() isfalse:
| (since C++26) |
Contents |
| pos | - | position of the bit to return |
Throws nothing.
#include <bitset>#include <cstddef>#include <iostream> 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]: 0b1[1]: 1b1[2]: 0b1[3]: 1b1[4]: 0b1[5]: 1b1[6]: 0b1[7]: 0After setting bit 0, b1 holds 00101011
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++ standard 2. there was only the non-const overload | 1. description added 2. added the const overload |
| LWG 907 | C++98 | the behavior of reading the bit atpos was equivalent to that of test(pos), buttest() may throw exceptions | avoids mentioningtest() |
| accesses specific bit (public member function)[edit] |