std::vector<bool, Alloc>::reference
| class reference; |
||
Die Spezialisierungen von std::vector<bool, Alloc> definieren std::vector<bool, Alloc>::reference als eine öffentlich zugängliche, verschachtelte Klasse. std::vector<bool, Alloc>::reference proxysiert das Verhalten von Referenzen auf ein einzelnes Bit in std::vector<bool, Alloc>.
Der primäre Verwendungszweck von std::vector<bool, Alloc>::reference ist die Bereitstellung eines lvalues, der von operator[] zurückgegeben werden kann.
Jedes Lesen oder Schreiben in einen Vektor, das über eine std::vector<bool, Alloc>::reference erfolgt, kann potenziell den gesamten zugrunde liegenden Vektor lesen oder schreiben.
[edit] Memberfunktionen
| (Konstruktor) |
konstruiert die Referenz (öffentliche Memberfunktion) |
| (Destruktor) |
zerstört die Referenz (öffentliche Memberfunktion) |
| operator= |
weist dem referenzierten Bit einen Wert zu (öffentliche Memberfunktion) |
| operator bool |
gibt das referenzierte Bit zurück (public member function) |
| wechselt |
invertiert das referenzierte Bit (öffentliche Memberfunktion) |
std::vector<bool, Alloc>::reference::reference
reference( const reference& ) = default; |
(seit C++11) (constexpr seit C++20) |
|
Konstruiert die Referenz aus einer anderen Referenz. Der Kopierkonstruktor wird implizit deklariert.(bis C++11)
Andere Konstruktoren sind nur durch std::vector<bool, Alloc> zugänglich.
std::vector<bool, Alloc>::reference::~reference
~reference(); |
(constexpr seit C++20) | |
Zerstört die Referenz.
std::vector<bool, Alloc>::reference::operator=
reference& operator=( bool x ); |
(1) | (noexcept seit C++11) (constexpr seit C++20) |
| constexpr const reference& operator=( bool x ) const noexcept; |
(2) | (seit C++23) |
reference& operator=( const reference& x ); |
(3) | (noexcept seit C++11) (constexpr seit C++20) |
Weist dem referenzierten Bit einen Wert zu.
Parameter
| x | - | zuweisender Wert |
Rückgabewert
*this
std::vector<bool, Alloc>::reference::operator bool
operator bool() const; |
(noexcept seit C++11) (constexpr seit C++20) |
|
Gibt den Wert des referenzierten Bits zurück.
Rückgabewert
Das referenzierte Bit.
std::vector<bool, Alloc>::reference::flip
void flip(); |
(noexcept seit C++11) (constexpr seit C++20) |
|
Invertiert das referenzierte Bit.
[edit] Hilfsklassen
std::formatter<std::vector<bool, Alloc>::reference>
| template< class T, class CharT > requires /*is-vector-bool-reference*/<T> |
(seit C++23) | |
Spezialisiert std::formatter für std::vector<bool, Alloc>::reference. Die Spezialisierung verwendet std::formatter<bool, CharT> als zugrunde liegenden Formatter (bezeichnet als underlying_), wobei das referenzierte Bit zur Formatierung in bool konvertiert wird.
Die expositions-nur-Konstante /*is-vector-bool-reference*/<T> ist true genau dann, wenn T den Typ std::vector<bool, Alloc>::reference für irgendeinen Typ Alloc bezeichnet und std::vector<bool, Alloc> keine benutzerdefinierte Spezialisierung ist.
Memberfunktionen
| template< class ParseContext > constexpr ParseContext::iterator parse( ParseContext& ctx ); |
(1) | (seit C++23) |
| template< class FormatContext > FormatContext::iterator format( const T& r, FormatContext& ctx ) const; |
(2) | (seit C++23) |
underlying_.parse(ctx);. underlying_.format(r, ctx);.[edit] Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
[edit] Siehe auch
| Greift auf ein bestimmtes Element zu (öffentliche Memberfunktion von std::vector<T,Allocator>) | |
| [static] |
vertauscht zwei std::vector<bool>::references(public static member function) |
[edit] Externe Links
"Effective Modern C++" von Scott Meyers (2015), Kapitel 2, Punkt 6: "Verwenden Sie das explizit typisierte Initialisierungsidiom, wenn auto unerwünschte Typen ableitet." (S. 43-46) — beschreibt eine mögliche Fehlverwendung der Proxy-Klasse std::vector<bool>::reference). |