]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/std/containers/associative/set/set.cons/initializer_list_compare_alloc.pass.cpp
Vendor import of libc++ trunk r290819:
[FreeBSD/FreeBSD.git] / test / std / containers / associative / set / set.cons / initializer_list_compare_alloc.pass.cpp
1 //===----------------------------------------------------------------------===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is dual licensed under the MIT and the University of Illinois Open
6 // Source Licenses. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9
10 // <set>
11
12 // class set
13
14 // set(initializer_list<value_type> il, const key_compare& comp, const allocator_type& a);
15 // set(initializer_list<value_type> il, const allocator_type& a);
16
17 #include <set>
18 #include <cassert>
19 #include "test_macros.h"
20 #include "../../../test_compare.h"
21 #include "test_allocator.h"
22
23 int main()
24 {
25 #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
26     {
27     typedef test_compare<std::less<int> > Cmp;
28     typedef test_allocator<int> A;
29     typedef std::set<int, Cmp, A> C;
30     typedef C::value_type V;
31     C m({1, 2, 3, 4, 5, 6}, Cmp(10), A(4));
32     assert(m.size() == 6);
33     assert(distance(m.begin(), m.end()) == 6);
34     C::const_iterator i = m.cbegin();
35     assert(*i == V(1));
36     assert(*++i == V(2));
37     assert(*++i == V(3));
38     assert(*++i == V(4));
39     assert(*++i == V(5));
40     assert(*++i == V(6));
41     assert(m.key_comp() == Cmp(10));
42     assert(m.get_allocator() == A(4));
43     }
44 #if TEST_STD_VER > 11
45     {
46     typedef test_compare<std::less<int> > Cmp;
47     typedef test_allocator<int> A;
48     typedef std::set<int, Cmp, A> C;
49     typedef C::value_type V;
50     C m({1, 2, 3, 4, 5, 6}, A(4));
51     assert(m.size() == 6);
52     assert(distance(m.begin(), m.end()) == 6);
53     C::const_iterator i = m.cbegin();
54     assert(*i == V(1));
55     assert(*++i == V(2));
56     assert(*++i == V(3));
57     assert(*++i == V(4));
58     assert(*++i == V(5));
59     assert(*++i == V(6));
60     assert(m.get_allocator() == A(4));
61     }
62 #endif
63 #endif  // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
64 }