Namespaces
Variants
Actions

std::bitset<N>::reference

From cppreference.com
< cpp‎ | utility‎ | bitset
 
 
 
 
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.

Contents

[edit]Member functions

(constructor)
constructs the reference
(public member function)
(destructor)
destroys the reference
(public member function)
operator=
assigns a value to the referenced bit
(public member function)
operator bool
returns the referenced bit
(public member function)[edit]
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

[edit]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

[edit]See also

accesses specific bit
(public member function)[edit]
close