std::bitset<N>::reference
class reference; |
||
The std::bitset class includes std::bitset::reference as a publicly-accessible nested class. This class is used as a proxy object to allow users to interact with individual bits of a bitset, since standard C++ types (like references and pointers) are not built with enough precision to specify individual bits.
The primary use of std::bitset::reference is to provide an lvalue that can be returned from operator[].
Any reads or writes to a bitset that happen via a std::bitset::reference potentially read or write to the entire underlying bitset.
Member functions
(constructor) |
constructs the reference (public member function) |
| destroys the reference (public member function) | |
operator= |
assigns a value to the referenced bit (public member function) |
| returns the referenced bit (public member function) | |
operator~ |
returns inverted referenced bit (public member function) |
flip |
flips the referenced bit (public member function) |
std::bitset<N>::reference::reference
reference( const reference& ) = default; |
(since C++11) (constexpr since C++23) |
|
Constructs the reference from another reference. The copy constructor is implicitly declared.(until C++11)
Other constructors can only be accessed by std::bitset.
std::bitset<N>::reference::~reference
~reference(); |
(constexpr since C++23) | |
Destroys the reference.
std::bitset<N>::reference::operator=
reference& operator=( bool x ); |
(1) | (noexcept since C++11) (constexpr since C++23) |
reference& operator=( const reference& x ); |
(2) | (noexcept since C++11) (constexpr since C++23) |
Assigns a value to the referenced bit.
Parameters
| x | - | value to assign |
Return value
*this
std::bitset<N>::reference::operator bool
operator bool() const; |
(noexcept since C++11) (constexpr since C++23) |
|
Returns the value of the referenced bit.
Return value
The referenced bit.
std::bitset<N>::reference::operator~
bool operator~() const; |
(noexcept since C++11) (constexpr since C++23) |
|
Returns the inverse of the referenced bit.
Return value
The inverse of the referenced bit.
std::bitset<N>::reference::flip
reference& flip(); |
(noexcept since C++11) (constexpr since C++23) |
|
Inverts the referenced bit.
Return value
*this
Example
#include <bitset>
#include <iostream>
int main()
{
std::bitset<4> bs{0b1110};
std::bitset<4>::reference ref = bs[2];
auto info = [&](int id)
{
std::cout << id << ") bs: " << bs << "; ref bit: " << ref << '\n';
};
info(1);
ref = false;
info(2);
ref = true;
info(3);
ref.flip();
info(4);
ref = bs[1]; // operator=( const reference& x )
info(5);
std::cout << "6) ~ref bit: " << ~ref << '\n';
}
Output:
1) bs: 1110; ref bit: 1
2) bs: 1010; ref bit: 0
3) bs: 1110; ref bit: 1
4) bs: 1010; ref bit: 0
5) bs: 1110; ref bit: 1
6) ~ref bit: 0
See also
| accesses specific bit (public member function) |