1667925d4SNikolas Klauser //===----------------------------------------------------------------------===// 2667925d4SNikolas Klauser // 3667925d4SNikolas Klauser // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4667925d4SNikolas Klauser // See https://llvm.org/LICENSE.txt for license information. 5667925d4SNikolas Klauser // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6667925d4SNikolas Klauser // 7667925d4SNikolas Klauser //===----------------------------------------------------------------------===// 8667925d4SNikolas Klauser 9667925d4SNikolas Klauser // <vector> 10667925d4SNikolas Klauser 11667925d4SNikolas Klauser #include <cassert> 12667925d4SNikolas Klauser #include <vector> 13667925d4SNikolas Klauser 14667925d4SNikolas Klauser #include "test_macros.h" 15667925d4SNikolas Klauser test()16*98d3d5b5SNikolas KlauserTEST_CONSTEXPR_CXX20 bool test() { 17667925d4SNikolas Klauser using CRefT = std::vector<bool>::const_reference; 18667925d4SNikolas Klauser #if !defined(_LIBCPP_VERSION) || defined(_LIBCPP_ABI_BITSET_VECTOR_BOOL_CONST_SUBSCRIPT_RETURN_BOOL) 19667925d4SNikolas Klauser ASSERT_SAME_TYPE(CRefT, bool); 20667925d4SNikolas Klauser #else 21667925d4SNikolas Klauser ASSERT_SAME_TYPE(CRefT, std::__bit_const_reference<std::vector<bool> >); 22667925d4SNikolas Klauser std::vector<bool> vec; 23667925d4SNikolas Klauser vec.push_back(true); 24667925d4SNikolas Klauser CRefT ref = vec[0]; 25667925d4SNikolas Klauser assert(ref); 26667925d4SNikolas Klauser vec[0] = false; 27667925d4SNikolas Klauser assert(!ref); 28667925d4SNikolas Klauser #endif 29667925d4SNikolas Klauser 30667925d4SNikolas Klauser return true; 31667925d4SNikolas Klauser } 32667925d4SNikolas Klauser main(int,char **)33667925d4SNikolas Klauserint main(int, char**) { 34667925d4SNikolas Klauser test(); 35*98d3d5b5SNikolas Klauser #if TEST_STD_VER > 17 36*98d3d5b5SNikolas Klauser static_assert(test()); 37*98d3d5b5SNikolas Klauser #endif 38667925d4SNikolas Klauser 39667925d4SNikolas Klauser return 0; 40667925d4SNikolas Klauser } 41