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 // test bitset<N>& reset(size_t pos); 11 12 #include <bitset> 13 #include <cassert> 14 15 #include "test_macros.h" 16 17 template <std::size_t N> test_reset_one(bool test_throws)18void test_reset_one(bool test_throws) 19 { 20 std::bitset<N> v; 21 #ifdef TEST_HAS_NO_EXCEPTIONS 22 if (test_throws) return; 23 #else 24 try 25 { 26 #endif 27 v.set(); 28 v.reset(50); 29 if (50 >= v.size()) 30 assert(false); 31 for (unsigned i = 0; i < v.size(); ++i) 32 if (i == 50) 33 assert(!v[i]); 34 else 35 assert(v[i]); 36 assert(!test_throws); 37 #ifndef TEST_HAS_NO_EXCEPTIONS 38 } 39 catch (std::out_of_range&) 40 { 41 assert(test_throws); 42 } 43 #endif 44 } 45 main()46int main() 47 { 48 test_reset_one<0>(true); 49 test_reset_one<1>(true); 50 test_reset_one<31>(true); 51 test_reset_one<32>(true); 52 test_reset_one<33>(true); 53 test_reset_one<63>(false); 54 test_reset_one<64>(false); 55 test_reset_one<65>(false); 56 test_reset_one<1000>(false); 57 } 58