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>::references (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