std::vector<bool>::reference
From cppreference.com
< cpp | container | vector bool
class reference; |
||
The std::vector
<bool> specialization defines std::vector
<bool>::reference
as a publicly-accessible nested class. std::vector
<bool>::reference
proxies the behavior of references to a single bit in std::vector
<bool>.
The primary use of std::vector
<bool>::reference
is to provide an lvalue that can be returned from operator[].
Any reads or writes to a vector that happen via a std::vector
<bool>::reference
potentially read or write to the entire underlying vector.
Member functions
(constructor) |
constructs the reference. Accessible only to std::vector <bool> itself (public 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) |
flip |
flips the referenced bit (public member function) |
std::vector<bool>::reference::~reference
~reference(); |
(until C++20) | |
constexpr ~reference(); |
(since C++20) | |
Destroys the reference.
std::vector<bool>::reference::operator=
(1) | ||
reference& operator=( bool x ); |
(until C++11) | |
reference& operator=( bool x ) noexcept; |
(since C++11) (until C++20) |
|
constexpr reference& operator=( bool x ) noexcept; |
(since C++20) | |
(2) | ||
reference& operator=( const reference& x ); |
(until C++11) | |
reference& operator=( const reference& x ) noexcept; |
(since C++11) (until C++20) |
|
constexpr reference& operator=( const reference& x ) noexcept; |
(since C++20) | |
constexpr const reference& operator=( bool x ) const noexcept; |
(3) | (since C++23) |
Assigns a value to the referenced bit.
Parameters
x | - | value to assign |
Return value
*this
std::vector<bool>::reference::operator bool
operator bool() const; |
(until C++11) | |
operator bool() const noexcept; |
(since C++11) (until C++20) |
|
constexpr operator bool() const noexcept; |
(since C++20) | |
Returns the value of the referenced bit.
Parameters
(none)
Return value
The referenced bit.
std::vector<bool>::reference::flip
void flip(); |
(until C++11) | |
void flip() noexcept; |
(since C++11) (until C++20) |
|
constexpr void flip() noexcept; |
(since C++20) | |
Inverts the referenced bit.
Parameters
(none)
Return value
(none)
Example
This section is incomplete Reason: no example |
See also
access specified element (public member function of std::vector<T,Allocator> ) | |
[static] |
swaps two std::vector<bool>:: references (public static member function) |
External links
"Effective Modern C++" by Scott Meyers (2015), Chapter 2, Item 6: "Use the explicitly typed initializer idiom when auto deduces undesired types." (p.43-46) — describes a possible misuse of the proxy class std::vector<bool>::reference ).
|