Namespaces
Variants

std:: vector<bool, Alloc>:: reference

From cppreference.net
class reference ;

Die std::vector < bool , Alloc > Spezialisierungen definieren std::vector < bool , Alloc > :: reference als eine öffentlich zugängliche geschachtelte Klasse. std::vector < bool , Alloc > :: reference simuliert das Verhalten von Referenzen auf ein einzelnes Bit in std::vector < bool , Alloc > .

Der Hauptzweck von std::vector < bool , Alloc > :: reference ist es, einen zuweisbaren Wert bereitzustellen, der von operator [ ] zurückgegeben werden kann.

Jedes Lesen oder Schreiben an einem Vektor, das über einen std::vector < bool , Alloc > :: reference erfolgt, liest oder schreibt potenziell auf den gesamten zugrundeliegenden Vektor.

Inhaltsverzeichnis

Memberfunktionen

(constructor)
konstruiert die Referenz
(public member function)
(destructor)
zerstört die Referenz
(public member function)
operator=
weist dem referenzierten Bit einen Wert zu
(public member function)
operator bool
gibt das referenzierte Bit zurück
(public member function)
flip
invertiert das referenzierte Bit
(public member function)

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 ist implizit deklariert. (bis C++11)

Andere Konstruktoren können nur durch std::vector < bool , Alloc > aufgerufen werden.

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.

Der const operator = ermöglicht es std::vector<bool,Alloc>::iterator , output_iterator zu erfüllen.

(seit C++23)

Parameter

x - zuzuweisender 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.

Hilfsklassen

std:: formatter <std::vector<bool, Alloc>::reference>

template < class T, class CharT >

requires /*is-vector-bool-reference*/ < T >

struct formatter < T, CharT > ;
(seit C++23)

Spezialisiert den std::formatter für std::vector < bool , Alloc > :: reference . Die Spezialisierung verwendet std:: formatter < bool , CharT > als zugrundeliegenden Formatter (bezeichnet als underlying_ ), wobei das referenzierte Bit zu bool konvertiert wird, um formatiert zu werden.

Die nur zur Darstellung dienende Konstante /*is-vector-bool-reference*/ < T > ist true genau dann, wenn T den Typ std::vector < bool , Alloc > :: reference für einen Typ Alloc bezeichnet und std::vector < bool , Alloc > keine programmdefinierte 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)
1) Äquivalent zu return underlying_ . parse ( ctx ) ; .
2) Äquivalent zu return underlying_ . format ( r, ctx ) ; .

Beispiel

Siehe auch

Zugriff auf spezifisches Element
(öffentliche Elementfunktion von std::vector<T,Allocator> )
[static]
tauscht zwei std::vector<bool>:: reference s
(öffentliche statische Elementfunktion)

Externe Links

"Effective Modern C++" von Scott Meyers (2015), Kapitel 2, Punkt 6: "Verwenden Sie die explizit typisierte Initialisierungs-Idiom, wenn auto unerwünschte Typen ableitet." (S.43-46) — beschreibt einen möglichen Missbrauch der Proxy-Klasse std::vector<bool>::reference ).