]>
git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/deduction.cc
72b2d07149aa077aeed43842d023b73d023a3cb2
1 // { dg-options "-std=gnu++17" }
2 // { dg-do compile { target c++17 } }
4 #include <unordered_map>
5 #include <testsuite_allocator.h>
7 using __gnu_test::SimpleAllocator
;
9 static_assert(std::is_same_v
<
10 decltype(std::unordered_multimap
{std::pair
{1, 2.0},
12 std::unordered_multimap
<int, double>>);
14 static_assert(std::is_same_v
<
15 decltype(std::unordered_multimap
{{std::pair
{1, 2.0},
16 {2, 3.0}, {3, 4.0}}}),
17 std::unordered_multimap
<int, double>>);
19 static_assert(std::is_same_v
<
20 decltype(std::unordered_multimap
{{std::pair
{1, 2.0},
22 {}, std::hash
<int>{}, {}}),
23 std::unordered_multimap
<int, double>>);
25 static_assert(std::is_same_v
<
26 decltype(std::unordered_multimap
{{std::pair
{1, 2.0},
29 std::unordered_multimap
<int, double>>);
31 static_assert(std::is_same_v
<
32 decltype(std::unordered_multimap
{
33 {std::pair
{1, 2.0}, {2, 3.0}, {3, 4.0}},
34 1, std::hash
<int>{}}),
35 std::unordered_multimap
<int, double>>);
37 static_assert(std::is_same_v
<
38 decltype(std::unordered_multimap
{
39 {std::pair
{1, 2.0}, {2, 3.0}, {3, 4.0}},
41 SimpleAllocator
<std::pair
<const int, double>>{}}),
42 std::unordered_multimap
<int, double, std::hash
<int>,
44 SimpleAllocator
<std::pair
<const int, double>>>>);
46 static_assert(std::is_same_v
<
47 decltype(std::unordered_multimap
{
48 {std::pair
{1, 2.0}, {2, 3.0}, {3, 4.0}},
50 SimpleAllocator
<std::pair
<const int, double>>{}}),
51 std::unordered_multimap
<int, double, std::hash
<int>,
53 SimpleAllocator
<std::pair
<const int, double>>>>);
58 std::unordered_multimap
<int, double> x
;
60 static_assert(std::is_same_v
<
61 decltype(std::unordered_multimap(x
.begin(), x
.end())),
62 std::unordered_multimap
<int, double>>);
64 static_assert(std::is_same_v
<
65 decltype(std::unordered_multimap
{x
.begin(), x
.end(),
66 {}, std::hash
<int>{}, {},
67 std::allocator
<std::pair
<const int, double>>{}}),
68 std::unordered_multimap
<int, double>>);
70 static_assert(std::is_same_v
<
71 decltype(std::unordered_multimap
{x
.begin(), x
.end(),
72 {}, std::hash
<int>{}, {}}),
73 std::unordered_multimap
<int, double>>);
75 static_assert(std::is_same_v
<
76 decltype(std::unordered_multimap(x
.begin(), x
.end(),
78 std::unordered_multimap
<int, double>>);
80 static_assert(std::is_same_v
<
81 decltype(std::unordered_multimap(x
.begin(), x
.end(), 1)),
82 std::unordered_multimap
<int, double>>);
84 static_assert(std::is_same_v
<
85 decltype(std::unordered_multimap
{x
.begin(), x
.end(),
87 std::allocator
<std::pair
<const int, double>>{}}),
88 std::unordered_multimap
<int, double>>);
90 static_assert(std::is_same_v
<
91 decltype(std::unordered_multimap
{x
.begin(), x
.end(),
93 SimpleAllocator
<std::pair
<const int, double>>{}}),
94 std::unordered_multimap
<int, double, std::hash
<int>,
96 SimpleAllocator
<std::pair
<const int, double>>>>);
98 static_assert(std::is_same_v
<
99 decltype(std::unordered_multimap
{x
.begin(), x
.end(),
101 std::allocator
<std::pair
<const int, double>>{}}),
102 std::unordered_multimap
<int, double>>);
104 static_assert(std::is_same_v
<
105 decltype(std::unordered_multimap
{x
.begin(), x
.end(),
107 SimpleAllocator
<std::pair
<const int, double>>{}}),
108 std::unordered_multimap
<int, double, std::hash
<int>,
110 SimpleAllocator
<std::pair
<const int, double>>>>);
112 static_assert(std::is_same_v
<
113 decltype(std::unordered_multimap
{x
.begin(), x
.end(),
115 std::allocator
<std::pair
<const int, double>>{}}),
116 std::unordered_multimap
<int, double>>);
118 static_assert(std::is_same_v
<
119 decltype(std::unordered_multimap
{x
.begin(), x
.end(),
121 SimpleAllocator
<std::pair
<const int, double>>{}}),
122 std::unordered_multimap
<int, double, std::hash
<int>,
124 SimpleAllocator
<std::pair
<const int, double>>>>);