std::bitset<N>:: test
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member types | ||||
| Member functions | ||||
|
(until C++20)
|
||||
| Element access | ||||
|
bitset::test
|
||||
| Capacity | ||||
| Modifiers | ||||
| Conversions | ||||
|
(C++11)
|
||||
| Non-member functions | ||||
| Helper classes | ||||
|
(C++11)
|
||||
|
bool
test
(
std::
size_t
pos
)
const
;
|
(constexpr seit C++23) | |
Gibt den Wert des Bits an der Position pos zurück (Zählung beginnt bei 0).
Im Gegensatz zu operator[] führt es eine Bereichsprüfung durch.
Inhaltsverzeichnis |
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) |
|
(C++20)
|
prüft, ob eine Zahl eine ganzzahlige Zweierpotenz ist
(Funktionstemplate) |