Namespaces
Variants

std::bitset<N>::test

Von de.cppreference.net
 
 
Hilfsmittelbibliothek
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Bibliotheks-Funktions-Makros prüfen (C++20)
Programm-Hilfsmittel
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 Hilfsmittel
Vergleichsoperatoren (veraltet in C++20)
Ganzzahlvergleichsfunktionen
(C++20)(C++20)(C++20)    
(C++20)
Tauschen 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 test( std::size_t pos ) const;
(constexpr seit C++23)

Gibt den Wert des Bits an der Position pos zurück (Zählung ab 0).

Anders als operator[] führt es eine Bereichsprüfung durch.

Parameter

pos - Position des zurückzugebenden Bits (Zählung ab 0)

Rückgabewert

true wenn das angeforderte Bit gesetzt ist, false andernfalls.

Ausnahmen

Wirft std::out_of_range falls pos keiner gültigen Bit-Position entspricht.

Beispiel

#include <bit>
#include <bitset>
#include <cassert>
#include <iostream>
#include <stdexcept>
int main()
{
    std::bitset<10> b1("1111010000");
    std::size_t idx = 0;
    while (idx < b1.size() && !b1.test(idx))
        ++idx;
    assert(static_cast<int>(idx) == std::countr_zero(b1.to_ulong()));
    if (idx < b1.size())
        std::cout << "Das erste gesetzte Bit befindet sich an Index " << idx << '\n';
    else
        std::cout << "Keine gesetzten Bits\n";
    try
    {
        std::bitset<0B10'1001'1010> bad;
        if (bad.test(bad.size()))
            std::cout << "Erwarte das Unerwartete!\n";
    }
    catch (std::out_of_range const& ex)
    {
        std::cout << "Exception: " << ex.what() << '\n';
    }
}

Mögliche Ausgabe:

Das erste gesetzte Bit befindet sich an Index 4
Exception: bitset::test: __position (which is 666) >= _Nb (which is 666)

Fehlerberichte

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

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
LWG 2250 C++98 das Verhalten war undefiniert wenn pos nicht
einer gültigen Bit-Position entspricht
wirft in diesem Fall immer eine
Exception

Siehe auch

greift auf bestimmtes Bit zu
(öffentliche Elementfunktion)
(C++20)
zählt die Anzahl der 1 Bits in einer vorzeichenlosen Ganzzahl
(Funktionstemplate)
prüft, ob eine Zahl eine ganzzahlige Zweierpotenz ist
(Funktionstemplate)