1 //===----------------------------------------------------------------------===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is dual licensed under the MIT and the University of Illinois Open 6 // Source Licenses. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 // XFAIL: libcpp-no-exceptions 11 // test bitset<N>& reset(size_t pos); 12 13 #include <bitset> 14 #include <cassert> 15 16 template <std::size_t N> 17 void test_reset_one() 18 { 19 std::bitset<N> v; 20 try 21 { 22 v.set(); 23 v.reset(50); 24 if (50 >= v.size()) 25 assert(false); 26 for (unsigned i = 0; i < v.size(); ++i) 27 if (i == 50) 28 assert(!v[i]); 29 else 30 assert(v[i]); 31 } 32 catch (std::out_of_range&) 33 { 34 } 35 } 36 37 int main() 38 { 39 test_reset_one<0>(); 40 test_reset_one<1>(); 41 test_reset_one<31>(); 42 test_reset_one<32>(); 43 test_reset_one<33>(); 44 test_reset_one<63>(); 45 test_reset_one<64>(); 46 test_reset_one<65>(); 47 test_reset_one<1000>(); 48 } 49