Namespaces
Variants

std::bitset<N>::operator[]

Aus de.cppreference.net
 
 
Hilfsprogrammbibliothek
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programm-Hilfsprogramme
Variadische Funktionen
Koroutinenunterstü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 Hilfsprogramme
Relationale Operatoren (veraltet in C++20)
Ganzzahlvergleichsfunktionen
(C++20)(C++20)(C++20)    
(C++20)
Swap und Typoperationen
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Allgemeine Vokabular-Typen
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
 
bool operator[]( std::size_t pos ) const;
(1) (constexpr seit C++11)
reference operator[]( std::size_t pos );
(2) (constexpr seit C++23)

Greift auf das Bit an Position pos zu.

1) Gibt den Wert des Bits zurück.
2) Gibt ein Objekt vom Typ std::bitset::reference zurück, das eine Änderung des Werts erlaubt.

Falls pos < size() gleich false ist, ist das Verhalten undefiniert.

(bis C++26)

Falls pos < size() gleich false ist:

  • Wenn die Implementierung gehärtet ist, tritt ein Vertragsverstoß auf.
  • Wenn die Implementierung nicht gehärtet ist, ist das Verhalten undefiniert.
(seit C++26)

Parameter

pos - Position des zurückzugebenden Bits

Rückgabewert

1) Der Wert des angeforderten Bits.
2) Ein Objekt vom Typ std::bitset::reference , das das Schreiben auf das angeforderte Bit ermöglicht.

Ausnahmen

Wirft nichts.

Beispiel

#include <bitset>
#include <cstddef>
#include <iostream>
int main()
{
    std::bitset<8> b1{0b00101010}; // Binärliteral für 42
    for (std::size_t i = 0; i < b1.size(); ++i)
        std::cout << "b1[" << i << "]: " << b1[i] << '\n';
    b1[0] = true; // modifiziert das erste Bit über bitset::reference
    std::cout << "Nach dem Setzen von Bit 0 enthält b1 " << b1 << '\n';
}

Ausgabe:

b1[0]: 0
b1[1]: 1
b1[2]: 0
b1[3]: 1
b1[4]: 0
b1[5]: 1
b1[6]: 0
b1[7]: 0
After setting bit 0, b1 holds 00101011

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrigiertes Verhalten
LWG 11 C++98 1. die Beschreibung fehlte im C++-Standard
2. es gab nur die nicht-konstante Überladung
1. Beschreibung hinzugefügt
2. konstante Überladung hinzugefügt
LWG 907 C++98 das Verhalten beim Lesen des Bits an pos war äquivalent
zu dem von test(pos) , aber test() könnte Ausnahmen werfen
vermeidet die Erwähnung von test()

Siehe auch

greift auf spezifisches Bit zu
(öffentliche Elementfunktion)