14cb7d781SMarshall Clow //===----------------------------------------------------------------------===// 24cb7d781SMarshall Clow // 357b08b09SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 457b08b09SChandler Carruth // See https://llvm.org/LICENSE.txt for license information. 557b08b09SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 64cb7d781SMarshall Clow // 74cb7d781SMarshall Clow //===----------------------------------------------------------------------===// 84cb7d781SMarshall Clow 94cb7d781SMarshall Clow // <vector> 104cb7d781SMarshall Clow 114cb7d781SMarshall Clow // class vector 124cb7d781SMarshall Clow 134cb7d781SMarshall Clow // bool empty() const noexcept; 144cb7d781SMarshall Clow 154cb7d781SMarshall Clow #include <vector> 164cb7d781SMarshall Clow #include <cassert> 174cb7d781SMarshall Clow 184cb7d781SMarshall Clow #include "test_macros.h" 194cb7d781SMarshall Clow #include "min_allocator.h" 204cb7d781SMarshall Clow tests()21*98d3d5b5SNikolas KlauserTEST_CONSTEXPR_CXX20 bool tests() 224cb7d781SMarshall Clow { 234cb7d781SMarshall Clow { 244cb7d781SMarshall Clow typedef std::vector<bool> C; 254cb7d781SMarshall Clow C c; 264cb7d781SMarshall Clow ASSERT_NOEXCEPT(c.empty()); 274cb7d781SMarshall Clow assert(c.empty()); 284cb7d781SMarshall Clow c.push_back(false); 294cb7d781SMarshall Clow assert(!c.empty()); 304cb7d781SMarshall Clow c.clear(); 314cb7d781SMarshall Clow assert(c.empty()); 324cb7d781SMarshall Clow } 334cb7d781SMarshall Clow #if TEST_STD_VER >= 11 344cb7d781SMarshall Clow { 354cb7d781SMarshall Clow typedef std::vector<bool, min_allocator<bool>> C; 364cb7d781SMarshall Clow C c; 374cb7d781SMarshall Clow ASSERT_NOEXCEPT(c.empty()); 384cb7d781SMarshall Clow assert(c.empty()); 394cb7d781SMarshall Clow c.push_back(false); 404cb7d781SMarshall Clow assert(!c.empty()); 414cb7d781SMarshall Clow c.clear(); 424cb7d781SMarshall Clow assert(c.empty()); 434cb7d781SMarshall Clow } 444cb7d781SMarshall Clow #endif 452df59c50SJF Bastien 46*98d3d5b5SNikolas Klauser return true; 47*98d3d5b5SNikolas Klauser } 48*98d3d5b5SNikolas Klauser main(int,char **)49*98d3d5b5SNikolas Klauserint main(int, char**) 50*98d3d5b5SNikolas Klauser { 51*98d3d5b5SNikolas Klauser tests(); 52*98d3d5b5SNikolas Klauser #if TEST_STD_VER > 17 53*98d3d5b5SNikolas Klauser static_assert(tests()); 54*98d3d5b5SNikolas Klauser #endif 552df59c50SJF Bastien return 0; 564cb7d781SMarshall Clow } 57