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.
| (constructor) | constructs the reference. Accessible only to std::bitset itself (private member function) |
| (destructor) | destroys the reference (public member function) |
| operator= | assigns a bool to the referenced bit (public member function) |
| operator bool | returns the referenced bit (public member function) |
| operator~ | returns inverted referenced bit (public member function) |
| flip | flips the referenced bit (public member function) |
~reference(); | (until C++23) | |
constexpr ~reference(); | (since C++23) |
Destroys the reference.
| (1) | ||
reference& operator=( bool x ); | (until C++11) | |
reference& operator=( bool x ) noexcept; | (since C++11) (until C++23) | |
constexpr reference& operator=( bool x ) noexcept; | (since C++23) | |
| (2) | ||
reference& operator=( const reference& x ); | (until C++11) | |
reference& operator=( const reference& x ) noexcept; | (since C++11) (until C++23) | |
constexpr reference& operator=( const reference& x ) noexcept; | (since C++23) |
Assigns a value to the referenced bit.
| x | - | value to assign |
*this.
operator bool() const; | (until C++11) | |
operator bool() const noexcept; | (since C++11) (until C++23) | |
constexpr operator bool() const noexcept; | (since C++23) |
Returns the value of the referenced bit.
(none).
The referenced bit.
bool operator~() const; | (until C++11) | |
bool operator~() const noexcept; | (since C++11) (until C++23) | |
constexpr bool operator~() const noexcept; | (since C++23) |
Returns the inverse of the referenced bit.
(none).
The inverse of the referenced bit.
reference& flip(); | (until C++11) | |
reference& flip() noexcept; | (since C++11) (until C++23) | |
constexpr reference& flip() noexcept; | (since C++23) |
Inverts the referenced bit.
(none).
*this.
#include <bitset>
#include <iostream>
int main()
{
std::bitset<4> bs( 0b1110 );
std::bitset<4>::reference ref = bs[2]; // auto ref = bs[2];
auto info = [&](int n) {
std::cout << n << ") 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
| accesses specific bit (public member function) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/utility/bitset/reference