xref: /llvm-project/libcxx/test/std/containers/sequences/vector.bool/empty.pass.cpp (revision 98d3d5b5da66e3cf7807c23a0294280bb796466b)
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 Klauser TEST_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 Klauser int 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