dynamic_bitset 1.3.0
Simple Useful Libraries: C++17/20 header-only dynamic bitset
Loading...
Searching...
No Matches
sul::dynamic_bitset< Block, Allocator >::reference Class Reference

Reference to a sul::dynamic_bitset bit. More...

#include <sul/dynamic_bitset.hpp>

Public Member Functions

constexpr reference (dynamic_bitset< Block, Allocator > &bitset, size_type bit_pos)
 Constructs a reference to a bit from a sul::dynamic_bitset and a bit position.
 
constexpr reference (const reference &) noexcept=default
 Copy constructor.
 
constexpr reference (reference &&) noexcept=default
 Move constructor.
 
 ~reference () noexcept=default
 Destructor.
 
constexpr referenceoperator= (bool v)
 Assign a value to the referenced bit.
 
constexpr referenceoperator= (const reference &rhs)
 Assign a value to the referenced bit from another reference.
 
constexpr referenceoperator= (reference &&rhs) noexcept
 Assign a value to the referenced bit from another reference.
 
constexpr referenceoperator&= (bool v)
 Apply binary operator AND to the referenced bit and a value, and assign the result to the referenced bit.
 
constexpr referenceoperator|= (bool v)
 Apply binary operator OR to the referenced bit and a value, and assign the result to the referenced bit.
 
constexpr referenceoperator^= (bool v)
 Apply binary operator XOR to the referenced bit and a value, and assign the result to the referenced bit.
 
constexpr referenceoperator-= (bool v)
 Apply binary difference to the referenced bit and a value, and assign the result to the referenced bit.
 
constexpr bool operator~ () const
 Return the result of applying unary NOT operator.
 
constexpr operator bool () const
 bool conversion operator.
 
constexpr void operator& ()=delete
 Deleted to avoid taking the address of a temporary proxy object.
 
constexpr referenceset ()
 Set the referenced bit to true.
 
constexpr referencereset ()
 Reset the referenced bit to false.
 
constexpr referenceflip ()
 Flip the referenced bit.
 
constexpr referenceassign (bool v)
 Assign the value v to the referenced bit.
 

Detailed Description

template<typename Block = unsigned long long, typename Allocator = std::allocator<Block>>
class sul::dynamic_bitset< Block, Allocator >::reference

Reference to a sul::dynamic_bitset bit.

As the bits in the sul::dynamic_bitset class are stored in an optimized way in blocks, it is not possible for the subscript operators to return a reference to a boolean. Hence this class is used as a proxy to enable subscript operator of the sul::dynamic_bitset class to be used as if it was an array of bools.

Since
1.0.0

Constructor & Destructor Documentation

◆ reference() [1/3]

constexpr sul::dynamic_bitset< Block, Allocator >::reference::reference ( dynamic_bitset< Block, Allocator > & bitset,
size_type bit_pos )
constexpr

Constructs a reference to a bit from a sul::dynamic_bitset and a bit position.

Parameters
bitsetsul::dynamic_bitset containing the bit
[in]bit_posPosition of the bit to reference in the sul::dynamic_bitset
Complexity
Constant.
Since
1.0.0

◆ reference() [2/3]

template<typename Block = unsigned long long, typename Allocator = std::allocator<Block>>
constexpr sul::dynamic_bitset< Block, Allocator >::reference::reference ( const reference & )
constexprdefaultnoexcept

Copy constructor.

Since
1.0.0

◆ reference() [3/3]

template<typename Block = unsigned long long, typename Allocator = std::allocator<Block>>
constexpr sul::dynamic_bitset< Block, Allocator >::reference::reference ( reference && )
constexprdefaultnoexcept

Move constructor.

Since
1.0.0

◆ ~reference()

template<typename Block = unsigned long long, typename Allocator = std::allocator<Block>>
sul::dynamic_bitset< Block, Allocator >::reference::~reference ( )
defaultnoexcept

Destructor.

Since
1.0.0

Member Function Documentation

◆ assign()

Assign the value v to the referenced bit.

Parameters
[in]vValue to assign to the bit
Returns
The reference
Complexity
Constant.
Since
1.0.0

◆ flip()

Flip the referenced bit.

Returns
The reference
Complexity
Constant.
Since
1.0.0

◆ operator bool()

constexpr sul::dynamic_bitset< Block, Allocator >::reference::operator bool ( ) const
constexpr

bool conversion operator.

Complexity
Constant.
Since
1.0.0

◆ operator&()

template<typename Block = unsigned long long, typename Allocator = std::allocator<Block>>
constexpr void sul::dynamic_bitset< Block, Allocator >::reference::operator& ( )
constexprdelete

Deleted to avoid taking the address of a temporary proxy object.

Since
1.0.0

◆ operator&=()

Apply binary operator AND to the referenced bit and a value, and assign the result to the referenced bit.

Parameters
[in]vValue to apply binary operator AND with
Returns
The reference
Complexity
Constant.
Since
1.0.0

◆ operator-=()

Apply binary difference to the referenced bit and a value, and assign the result to the referenced bit.

Equivalent to:

this &= !v;
constexpr dynamic_bitset(const dynamic_bitset< Block, Allocator > &other)=default
Copy constructor.
Parameters
[in]vValue to apply binary difference with
Returns
The reference
Complexity
Constant.
Since
1.0.0

◆ operator=() [1/3]

Assign a value to the referenced bit.

Parameters
[in]vValue to assign to the referenced bit
Returns
The reference
Complexity
Constant.
Since
1.0.0

◆ operator=() [2/3]

template<typename Block = unsigned long long, typename Allocator = std::allocator<Block>>
constexpr reference & sul::dynamic_bitset< Block, Allocator >::reference::operator= ( const reference & rhs)
constexpr

Assign a value to the referenced bit from another reference.

Parameters
[in]rhsreference to the bit to assign value from
Returns
The reference
Complexity
Constant.
Since
1.0.0

◆ operator=() [3/3]

Assign a value to the referenced bit from another reference.

Parameters
[in]rhsreference to the bit to assign value from
Returns
The reference
Complexity
Constant.
Since
1.0.0

◆ operator^=()

Apply binary operator XOR to the referenced bit and a value, and assign the result to the referenced bit.

Parameters
[in]vValue to apply binary operator XOR with
Returns
The reference
Complexity
Constant.
Since
1.0.0

◆ operator|=()

Apply binary operator OR to the referenced bit and a value, and assign the result to the referenced bit.

Parameters
[in]vValue to apply binary operator OR with
Returns
The reference
Complexity
Constant.
Since
1.0.0

◆ operator~()

constexpr bool sul::dynamic_bitset< Block, Allocator >::reference::operator~ ( ) const
constexpr

Return the result of applying unary NOT operator.

Returns
The opposite of the referenced bit
Complexity
Constant.
Since
1.0.0

◆ reset()

Reset the referenced bit to false.

Returns
The reference
Complexity
Constant.
Since
1.0.0

◆ set()

Set the referenced bit to true.

Returns
The reference
Complexity
Constant.
Since
1.0.0

The documentation for this class was generated from the following file: