Namespaces
Variants

std::bitset<N>:: reference

From cppreference.net
Utilities library
class reference ;

Die std::bitset -Klasse enthält std::bitset::reference als öffentlich zugängliche geschachtelte Klasse. Diese Klasse dient als Proxy-Objekt, um Benutzern die Interaktion mit einzelnen Bits eines Bitsets zu ermöglichen, da Standard-C++-Typen (wie Referenzen und Zeiger) nicht mit ausreichender Präzision für die Spezifikation einzelner Bits entwickelt wurden.

Der primäre Verwendungszweck von std::bitset::reference ist die Bereitstellung eines L-Werts, der von operator[] zurückgegeben werden kann.

Jedes Lesen oder Schreiben eines Bitsets, das über eine std::bitset::reference erfolgt, liest oder schreibt potenziell das gesamte zugrundeliegende Bitset.

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)
operator~
Gibt das invertierte referenzierte Bit zurück
(public member function)
flip
Invertiert das referenzierte Bit
(public member function)

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

Andere Konstruktoren können nur von std::bitset aufgerufen werden.

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 - zuzuweisender 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 das invertierte Referenzbit zurück.

Rückgabewert

Das invertierte Referenzbit.

std::bitset<N>::reference:: flip

reference & flip ( ) ;
(noexcept seit C++11)
(constexpr seit C++23)

Invertiert das referenzierte Bit.

Rückgabewert

* this

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

Siehe auch

greift auf bestimmtes Bit zu
(öffentliche Elementfunktion)