Returns the value of the bit at the position pos (counting from 0).
Unlike operator[], it performs a bounds check.
[edit] Parameters pos - position of the bit to return (counting from 0) [edit] Return valuetrue if the requested bit is set, false otherwise.
[edit] ExceptionsThrows std::out_of_range if pos does not correspond to a valid bit position.
[edit] Example#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 << "The first set bit is at index " << idx << '\n'; else std::cout << "no set bits\n"; try { std::bitset<0B10'1001'1010> bad; if (bad.test(bad.size())) std::cout << "Expect unexpected!\n"; } catch (std::out_of_range const& ex) { std::cout << "Exception: " << ex.what() << '\n'; } }
Possible output:
The first set bit is at index 4 Exception: bitset::test: __position (which is 666) >= _Nb (which is 666)[edit] Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR Applied to Behavior as published Correct behavior LWG 2250 C++98 the behavior was undefined if pos doesRetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4