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.
(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) |
~reference(); | (until C++20) | |
constexpr ~reference(); | (since C++20) |
Destroys the reference.
(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.
x | - | value to assign |
*this
.
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.
(none).
The referenced bit.
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.
(none).
(none).
access specified element (public member function of std::vector<T,Allocator> ) |
|
[static] | swaps two std::vector<bool>:: reference s (public static member function) |
"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 ). |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/container/vector_bool/reference