//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // test constexpr bool test(size_t pos) const; #include #include #include template std::bitset make_bitset() { std::bitset v; for (std::size_t i = 0; i < N; ++i) v[i] = static_cast(std::rand() & 1); return v; } template void test_test() { const std::bitset v1 = make_bitset(); try { bool b = v1.test(50); if (50 >= v1.size()) assert(false); assert(b == v1[50]); } catch (std::out_of_range&) { } } int main() { test_test<0>(); test_test<1>(); test_test<31>(); test_test<32>(); test_test<33>(); test_test<63>(); test_test<64>(); test_test<65>(); test_test<1000>(); }