std::bitset<N>::reference
| class reference; |
||
Die Klasse std::bitset enthält std::bitset::reference als öffentlich zugängliche, geschachtelte Klasse. Diese Klasse wird als Proxy-Objekt verwendet, um Benutzern die Interaktion mit einzelnen Bits eines Bitsets zu ermöglichen, da Standard-C++-Typen (wie Referenzen und Zeiger) nicht mit genügender Präzision für die Angabe einzelner Bits entwickelt wurden.
Die Hauptverwendung von std::bitset::reference besteht darin, ein lvalue bereitzustellen, das von operator[] zurückgegeben werden kann.
Jedes Lesen oder Schreiben in ein Bitset, das über ein std::bitset::reference erfolgt, kann potenziell das gesamte zugrunde liegende Bitset lesen oder schreiben.
Inhalt |
[bearbeiten] 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) |
| operator~ |
gibt invertiertes referenziertes Bit zurück (öffentliche Memberfunktion) |
| wechselt |
kehrt das referenzierte Bit um (öffentliche Memberfunktion) |
std::bitset<N>::reference::reference
reference( const reference& ) = default; |
(seit C++11) (constexpr seit C++23) |
|
Konstruiert die Referenz aus einer anderen Referenz. Der Kopierkonstruktor wird implizit deklariert.(bis C++11)
Andere Konstruktoren sind nur über std::bitset zugänglich.
std::bitset<N>::reference::~reference
~reference(); |
(constexpr seit C++23) | |
Zerstört die Referenz.
std::bitset<N>::reference::operator=
reference& operator=( bool x ); |
(1) | (noexcept seit C++11) (constexpr seit C++23) |
reference& operator=( const reference& x ); |
(2) | (noexcept seit C++11) (constexpr seit C++23) |
Weist dem referenzierten Bit einen Wert zu.
Parameter
| x | - | zuweisender Wert |
Rückgabewert
*this
std::bitset<N>::reference::operator bool
operator bool() const; |
(noexcept seit C++11) (constexpr seit C++23) |
|
Gibt den Wert des referenzierten Bits zurück.
Rückgabewert
Das referenzierte Bit.
std::bitset<N>::reference::operator~
bool operator~() const; |
(noexcept seit C++11) (constexpr seit C++23) |
|
Gibt die Invertierung des referenzierten Bits zurück.
Rückgabewert
Die Invertierung des referenzierten Bits.
std::bitset<N>::reference::flip
reference& flip(); |
(noexcept seit C++11) (constexpr seit C++23) |
|
Kehrt das referenzierte Bit um.
Rückgabewert
*this
[bearbeiten] Beispiel
#include <bitset> #include <iostream> int main() { std::bitset<4> bs{0b1110}; std::bitset<4>::reference ref = bs[2]; auto info = [&](int id) { std::cout << id << ") bs: " << bs << "; ref bit: " << ref << '\n'; }; info(1); ref = false; info(2); ref = true; info(3); ref.flip(); info(4); ref = bs[1]; // operator=( const reference& x ) info(5); std::cout << "6) ~ref bit: " << ~ref << '\n'; }
Ausgabe
1) bs: 1110; ref bit: 1 2) bs: 1010; ref bit: 0 3) bs: 1110; ref bit: 1 4) bs: 1010; ref bit: 0 5) bs: 1110; ref bit: 1 6) ~ref bit: 0
[bearbeiten] Siehe auch
| greift auf ein bestimmtes Bit zu (public member function) |