std::bitset::reference(3) | C++ Standard Libary | std::bitset::reference(3) |
NAME¶
std::bitset::reference - std::bitset::reference
Synopsis¶
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. 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)
std::bitset<N>::reference::~reference
~reference(); (constexpr since C++23)
Destroys the reference.
std::bitset<N>::reference::operator=
reference& operator=( bool x ); (until C++11)
(since C++11)
reference& operator=( bool x ) noexcept; (constexpr since
C++23)
reference& operator=( const reference& x (1) (until
C++11)
);
reference& operator=( const reference& x ) (2) (since
C++11)
noexcept; (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; (until C++11)
operator bool() const noexcept; (since C++11)
(constexpr since C++23)
Returns the value of the referenced bit.
Parameters¶
(none)
Return value¶
The referenced bit.
std::bitset<N>::reference::operator~
bool operator~() const; (until C++11)
bool operator~() const noexcept; (since C++11)
(constexpr since C++23)
Returns the inverse of the referenced bit.
Parameters¶
(none)
Return value¶
The inverse of the referenced bit.
std::bitset<N>::reference::flip
reference& flip(); (until C++11)
reference& flip() noexcept; (since C++11)
(constexpr since C++23)
Inverts the referenced bit.
Parameters¶
(none)
Return value¶
*this
Example¶
// Run this code
#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¶
operator[] accesses specific bit
(public member function)
2024.06.10 | http://cppreference.com |