1 //===----------------------------------------------------------------------===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 // <vector> 10 11 // reference& operator=(bool) 12 13 #include <cassert> 14 #include <vector> 15 16 bool test() { 17 std::vector<bool> vec; 18 typedef std::vector<bool>::reference Ref; 19 vec.push_back(true); 20 vec.push_back(false); 21 Ref ref = vec[0]; 22 const Ref cref = vec[0]; 23 24 assert(ref); 25 ref = false; 26 assert(!vec[0]); 27 assert(!vec[1]); 28 ref = true; 29 assert(vec[0]); 30 assert(!vec[1]); 31 32 assert(cref); 33 34 return true; 35 } 36 37 int main(int, char**) { 38 test(); 39 40 return 0; 41 } 42