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*c74059c5SNikolas Klauser TEST_CONSTEXPR_CXX20 bool tests() {
224cb7d781SMarshall Clow     {
234cb7d781SMarshall Clow     typedef std::vector<int> C;
244cb7d781SMarshall Clow     C c;
254cb7d781SMarshall Clow     ASSERT_NOEXCEPT(c.empty());
264cb7d781SMarshall Clow     assert(c.empty());
274cb7d781SMarshall Clow     c.push_back(C::value_type(1));
284cb7d781SMarshall Clow     assert(!c.empty());
294cb7d781SMarshall Clow     c.clear();
304cb7d781SMarshall Clow     assert(c.empty());
314cb7d781SMarshall Clow     }
324cb7d781SMarshall Clow #if TEST_STD_VER >= 11
334cb7d781SMarshall Clow     {
344cb7d781SMarshall Clow     typedef std::vector<int, min_allocator<int>> C;
354cb7d781SMarshall Clow     C c;
364cb7d781SMarshall Clow     ASSERT_NOEXCEPT(c.empty());
374cb7d781SMarshall Clow     assert(c.empty());
384cb7d781SMarshall Clow     c.push_back(C::value_type(1));
394cb7d781SMarshall Clow     assert(!c.empty());
404cb7d781SMarshall Clow     c.clear();
414cb7d781SMarshall Clow     assert(c.empty());
424cb7d781SMarshall Clow     }
434cb7d781SMarshall Clow #endif
442df59c50SJF Bastien 
45*c74059c5SNikolas Klauser     return true;
46*c74059c5SNikolas Klauser }
47*c74059c5SNikolas Klauser 
main(int,char **)48*c74059c5SNikolas Klauser int main(int, char**)
49*c74059c5SNikolas Klauser {
50*c74059c5SNikolas Klauser     tests();
51*c74059c5SNikolas Klauser #if TEST_STD_VER > 17
52*c74059c5SNikolas Klauser     static_assert(tests());
53*c74059c5SNikolas Klauser #endif
542df59c50SJF Bastien     return 0;
554cb7d781SMarshall Clow }
56