Namensräume
Varianten
Aktionen

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

Von cppreference.com
 
 
 
 
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.

Inhalt

[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) [edit]
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>

struct formatter<T, CharT>;
(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)
1) Äquivalent zu return underlying_.parse(ctx);.
2) Äquivalent zu return underlying_.format(r, ctx);.

[edit] Beispiel

[edit] Siehe auch

Greift auf ein bestimmtes Element zu
(öffentliche Memberfunktion von std::vector<T,Allocator>) [bearbeiten]
[static]
vertauscht zwei std::vector<bool>::references
(public static member function) [edit]

[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).