xref: /llvm-project/libcxx/test/std/containers/sequences/vector.bool/get_allocator.pass.cpp (revision 98d3d5b5da66e3cf7807c23a0294280bb796466b)
18d25da78SKonstantin Boyarinov //===----------------------------------------------------------------------===//
28d25da78SKonstantin Boyarinov //
38d25da78SKonstantin Boyarinov // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
48d25da78SKonstantin Boyarinov // See https://llvm.org/LICENSE.txt for license information.
58d25da78SKonstantin Boyarinov // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
68d25da78SKonstantin Boyarinov //
78d25da78SKonstantin Boyarinov //===----------------------------------------------------------------------===//
88d25da78SKonstantin Boyarinov 
98d25da78SKonstantin Boyarinov // <vector>
108d25da78SKonstantin Boyarinov 
118d25da78SKonstantin Boyarinov // class vector<bool>
128d25da78SKonstantin Boyarinov 
138d25da78SKonstantin Boyarinov // allocator_type get_allocator() const
148d25da78SKonstantin Boyarinov 
158d25da78SKonstantin Boyarinov #include <vector>
168d25da78SKonstantin Boyarinov #include <cassert>
178d25da78SKonstantin Boyarinov 
188d25da78SKonstantin Boyarinov #include "test_allocator.h"
198d25da78SKonstantin Boyarinov #include "test_macros.h"
208d25da78SKonstantin Boyarinov 
test()21*98d3d5b5SNikolas Klauser TEST_CONSTEXPR_CXX20 bool test() {
228d25da78SKonstantin Boyarinov     {
2393230ac1SCasey Carter         std::allocator<bool> alloc;
248d25da78SKonstantin Boyarinov         const std::vector<bool> vb(alloc);
258d25da78SKonstantin Boyarinov         assert(vb.get_allocator() == alloc);
268d25da78SKonstantin Boyarinov     }
278d25da78SKonstantin Boyarinov     {
2893230ac1SCasey Carter         other_allocator<bool> alloc(1);
2993230ac1SCasey Carter         const std::vector<bool, other_allocator<bool> > vb(alloc);
308d25da78SKonstantin Boyarinov         assert(vb.get_allocator() == alloc);
318d25da78SKonstantin Boyarinov     }
328d25da78SKonstantin Boyarinov 
33*98d3d5b5SNikolas Klauser     return true;
34*98d3d5b5SNikolas Klauser }
35*98d3d5b5SNikolas Klauser 
main(int,char **)36*98d3d5b5SNikolas Klauser int main(int, char**) {
37*98d3d5b5SNikolas Klauser   test();
38*98d3d5b5SNikolas Klauser #if TEST_STD_VER > 17
39*98d3d5b5SNikolas Klauser     static_assert(test());
40*98d3d5b5SNikolas Klauser #endif
41*98d3d5b5SNikolas Klauser 
428d25da78SKonstantin Boyarinov     return 0;
438d25da78SKonstantin Boyarinov }
44