Namensräume
Varianten
Aktionen

std::bitset<N>::reference

Von cppreference.com
< cpp‎ | utility‎ | bitset
 
 
Dienstprogramm-Bibliotheken
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programm-Dienstprogramme
Variadische Funktionen
Coroutine-Unterstützung (C++20)
Vertragsunterstützung (C++26)
Drei-Wege-Vergleich
(C++20)
(C++20)(C++20)(C++20)  
(C++20)(C++20)(C++20)

Allgemeine Hilfsmittel
Relationale Operatoren (in C++20 veraltet)
 
 
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) [bearbeiten]
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) [edit]