summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libcxx/test/std/containers/associative/multiset/insert_cv.pass.cpp78
-rw-r--r--libcxx/test/std/containers/associative/set/insert_cv.pass.cpp87
-rw-r--r--libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/insert_const_lvalue.pass.cpp15
-rw-r--r--libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/insert_hint_const_lvalue.pass.cpp79
-rw-r--r--libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_const_lvalue.pass.cpp77
-rw-r--r--libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_hint_const_lvalue.pass.cpp80
-rw-r--r--libcxx/test/std/containers/unord/unord.multiset/insert_const_lvalue.pass.cpp70
-rw-r--r--libcxx/test/std/containers/unord/unord.multiset/insert_hint_const_lvalue.pass.cpp69
-rw-r--r--libcxx/test/std/containers/unord/unord.set/insert_const_lvalue.pass.cpp76
-rw-r--r--libcxx/test/std/containers/unord/unord.set/insert_hint_const_lvalue.pass.cpp67
10 files changed, 293 insertions, 405 deletions
diff --git a/libcxx/test/std/containers/associative/multiset/insert_cv.pass.cpp b/libcxx/test/std/containers/associative/multiset/insert_cv.pass.cpp
index 2aa920d7097..fe756428223 100644
--- a/libcxx/test/std/containers/associative/multiset/insert_cv.pass.cpp
+++ b/libcxx/test/std/containers/associative/multiset/insert_cv.pass.cpp
@@ -18,56 +18,44 @@
#include "min_allocator.h"
-int main()
+template<class Container>
+void do_insert_cv_test()
{
- {
- typedef std::multiset<int> M;
- typedef M::iterator R;
- M m;
- R r = m.insert(M::value_type(2));
- assert(r == m.begin());
- assert(m.size() == 1);
- assert(*r == 2);
-
- r = m.insert(M::value_type(1));
- assert(r == m.begin());
- assert(m.size() == 2);
- assert(*r == 1);
-
- r = m.insert(M::value_type(3));
- assert(r == prev(m.end()));
- assert(m.size() == 3);
- assert(*r == 3);
+ typedef Container M;
+ typedef typename M::iterator R;
+ typedef typename M::value_type VT;
+ M m;
+ const VT v1(2);
+ R r = m.insert(v1);
+ assert(r == m.begin());
+ assert(m.size() == 1);
+ assert(*r == 2);
+
+ const VT v2(1);
+ r = m.insert(v2);
+ assert(r == m.begin());
+ assert(m.size() == 2);
+ assert(*r == 1);
+
+ const VT v3(3);
+ r = m.insert(v3);
+ assert(r == prev(m.end()));
+ assert(m.size() == 3);
+ assert(*r == 3);
+
+ r = m.insert(v3);
+ assert(r == prev(m.end()));
+ assert(m.size() == 4);
+ assert(*r == 3);
+}
- r = m.insert(M::value_type(3));
- assert(r == prev(m.end()));
- assert(m.size() == 4);
- assert(*r == 3);
- }
+int main()
+{
+ do_insert_cv_test<std::multiset<int> >();
#if TEST_STD_VER >= 11
{
typedef std::multiset<int, std::less<int>, min_allocator<int>> M;
- typedef M::iterator R;
- M m;
- R r = m.insert(M::value_type(2));
- assert(r == m.begin());
- assert(m.size() == 1);
- assert(*r == 2);
-
- r = m.insert(M::value_type(1));
- assert(r == m.begin());
- assert(m.size() == 2);
- assert(*r == 1);
-
- r = m.insert(M::value_type(3));
- assert(r == prev(m.end()));
- assert(m.size() == 3);
- assert(*r == 3);
-
- r = m.insert(M::value_type(3));
- assert(r == prev(m.end()));
- assert(m.size() == 4);
- assert(*r == 3);
+ do_insert_cv_test<M>();
}
#endif
}
diff --git a/libcxx/test/std/containers/associative/set/insert_cv.pass.cpp b/libcxx/test/std/containers/associative/set/insert_cv.pass.cpp
index 8d5290a97af..17d3c26237c 100644
--- a/libcxx/test/std/containers/associative/set/insert_cv.pass.cpp
+++ b/libcxx/test/std/containers/associative/set/insert_cv.pass.cpp
@@ -18,64 +18,49 @@
#include "min_allocator.h"
-int main()
+template<class Container>
+void do_insert_cv_test()
{
- {
- typedef std::set<int> M;
- typedef std::pair<M::iterator, bool> R;
- M m;
- R r = m.insert(M::value_type(2));
- assert(r.second);
- assert(r.first == m.begin());
- assert(m.size() == 1);
- assert(*r.first == 2);
+ typedef Container M;
+ typedef std::pair<typename M::iterator, bool> R;
+ typedef typename M::value_type VT;
+ M m;
- r = m.insert(M::value_type(1));
- assert(r.second);
- assert(r.first == m.begin());
- assert(m.size() == 2);
- assert(*r.first == 1);
+ const VT v1(2);
+ R r = m.insert(v1);
+ assert(r.second);
+ assert(r.first == m.begin());
+ assert(m.size() == 1);
+ assert(*r.first == 2);
- r = m.insert(M::value_type(3));
- assert(r.second);
- assert(r.first == prev(m.end()));
- assert(m.size() == 3);
- assert(*r.first == 3);
+ const VT v2(1);
+ r = m.insert(v2);
+ assert(r.second);
+ assert(r.first == m.begin());
+ assert(m.size() == 2);
+ assert(*r.first == 1);
- r = m.insert(M::value_type(3));
- assert(!r.second);
- assert(r.first == prev(m.end()));
- assert(m.size() == 3);
- assert(*r.first == 3);
- }
+ const VT v3(3);
+ r = m.insert(v3);
+ assert(r.second);
+ assert(r.first == prev(m.end()));
+ assert(m.size() == 3);
+ assert(*r.first == 3);
+
+ r = m.insert(v3);
+ assert(!r.second);
+ assert(r.first == prev(m.end()));
+ assert(m.size() == 3);
+ assert(*r.first == 3);
+}
+
+int main()
+{
+ do_insert_cv_test<std::set<int> >();
#if TEST_STD_VER >= 11
{
typedef std::set<int, std::less<int>, min_allocator<int>> M;
- typedef std::pair<M::iterator, bool> R;
- M m;
- R r = m.insert(M::value_type(2));
- assert(r.second);
- assert(r.first == m.begin());
- assert(m.size() == 1);
- assert(*r.first == 2);
-
- r = m.insert(M::value_type(1));
- assert(r.second);
- assert(r.first == m.begin());
- assert(m.size() == 2);
- assert(*r.first == 1);
-
- r = m.insert(M::value_type(3));
- assert(r.second);
- assert(r.first == prev(m.end()));
- assert(m.size() == 3);
- assert(*r.first == 3);
-
- r = m.insert(M::value_type(3));
- assert(!r.second);
- assert(r.first == prev(m.end()));
- assert(m.size() == 3);
- assert(*r.first == 3);
+ do_insert_cv_test<M>();
}
#endif
}
diff --git a/libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/insert_const_lvalue.pass.cpp b/libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/insert_const_lvalue.pass.cpp
index fe2b24707fb..a191ad7036c 100644
--- a/libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/insert_const_lvalue.pass.cpp
+++ b/libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/insert_const_lvalue.pass.cpp
@@ -37,28 +37,29 @@ void do_insert_cv_test()
assert(r.first->first == 2.5);
assert(r.first->second == 2);
- r = m.insert(VT(2.5, 3)); // test rvalue insertion works in C++03
+ const VT v2(2.5, 3);
+ r = m.insert(v2);
assert(!r.second);
assert(m.size() == 1);
assert(r.first->first == 2.5);
assert(r.first->second == 2);
- const VT v2(1.5, 1);
- r = m.insert(v2);
+ const VT v3(1.5, 1);
+ r = m.insert(v3);
assert(r.second);
assert(m.size() == 2);
assert(r.first->first == 1.5);
assert(r.first->second == 1);
- const VT v3(3.5, 3);
- r = m.insert(v3);
+ const VT v4(3.5, 3);
+ r = m.insert(v4);
assert(r.second);
assert(m.size() == 3);
assert(r.first->first == 3.5);
assert(r.first->second == 3);
- const VT v4(3.5, 4);
- r = m.insert(v4);
+ const VT v5(3.5, 4);
+ r = m.insert(v5);
assert(!r.second);
assert(m.size() == 3);
assert(r.first->first == 3.5);
diff --git a/libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/insert_hint_const_lvalue.pass.cpp b/libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/insert_hint_const_lvalue.pass.cpp
index d40a8a61a3d..5c653ee8fb3 100644
--- a/libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/insert_hint_const_lvalue.pass.cpp
+++ b/libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/insert_hint_const_lvalue.pass.cpp
@@ -24,61 +24,48 @@
#include "min_allocator.h"
-int main()
+template<class Container>
+void do_insert_hint_const_lvalue_test()
{
- {
- typedef std::unordered_map<double, int> C;
- typedef C::iterator R;
- typedef C::value_type P;
- C c;
- C::const_iterator e = c.end();
- R r = c.insert(e, P(3.5, 3));
- assert(c.size() == 1);
- assert(r->first == 3.5);
- assert(r->second == 3);
+ typedef Container C;
+ typedef typename C::iterator R;
+ typedef typename C::value_type VT;
+ C c;
+ typename C::const_iterator e = c.end();
+ const VT v1(3.5, 3);
+ R r = c.insert(e, v1);
+ assert(c.size() == 1);
+ assert(r->first == 3.5);
+ assert(r->second == 3);
- r = c.insert(c.end(), P(3.5, 4));
- assert(c.size() == 1);
- assert(r->first == 3.5);
- assert(r->second == 3);
+ const VT v2(3.5, 4);
+ r = c.insert(c.end(), v2);
+ assert(c.size() == 1);
+ assert(r->first == 3.5);
+ assert(r->second == 3);
- r = c.insert(c.end(), P(4.5, 4));
- assert(c.size() == 2);
- assert(r->first == 4.5);
- assert(r->second == 4);
+ const VT v3(4.5, 4);
+ r = c.insert(c.end(), v3);
+ assert(c.size() == 2);
+ assert(r->first == 4.5);
+ assert(r->second == 4);
- r = c.insert(c.end(), P(5.5, 4));
- assert(c.size() == 3);
- assert(r->first == 5.5);
- assert(r->second == 4);
- }
+ const VT v4(5.5, 4);
+ r = c.insert(c.end(), v4);
+ assert(c.size() == 3);
+ assert(r->first == 5.5);
+ assert(r->second == 4);
+}
+
+int main()
+{
+ do_insert_hint_const_lvalue_test<std::unordered_map<double, int> >();
#if TEST_STD_VER >= 11
{
typedef std::unordered_map<double, int, std::hash<double>, std::equal_to<double>,
min_allocator<std::pair<const double, int>>> C;
- typedef C::iterator R;
- typedef C::value_type P;
- C c;
- C::const_iterator e = c.end();
- R r = c.insert(e, P(3.5, 3));
- assert(c.size() == 1);
- assert(r->first == 3.5);
- assert(r->second == 3);
-
- r = c.insert(c.end(), P(3.5, 4));
- assert(c.size() == 1);
- assert(r->first == 3.5);
- assert(r->second == 3);
-
- r = c.insert(c.end(), P(4.5, 4));
- assert(c.size() == 2);
- assert(r->first == 4.5);
- assert(r->second == 4);
- r = c.insert(c.end(), P(5.5, 4));
- assert(c.size() == 3);
- assert(r->first == 5.5);
- assert(r->second == 4);
+ do_insert_hint_const_lvalue_test<C>();
}
#endif
#if _LIBCPP_DEBUG >= 1
diff --git a/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_const_lvalue.pass.cpp b/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_const_lvalue.pass.cpp
index 320fbc8fe2e..b87b7e372ff 100644
--- a/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_const_lvalue.pass.cpp
+++ b/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_const_lvalue.pass.cpp
@@ -20,59 +20,46 @@
#include "min_allocator.h"
-int main()
+template<class Container>
+void do_insert_const_lvalue_test()
{
- {
- typedef std::unordered_multimap<double, int> C;
- typedef C::iterator R;
- typedef C::value_type P;
- C c;
- R r = c.insert(P(3.5, 3));
- assert(c.size() == 1);
- assert(r->first == 3.5);
- assert(r->second == 3);
+ typedef Container C;
+ typedef typename C::iterator R;
+ typedef typename C::value_type VT;
+ C c;
+ const VT v1(3.5, 3);
+ R r = c.insert(v1);
+ assert(c.size() == 1);
+ assert(r->first == 3.5);
+ assert(r->second == 3);
- r = c.insert(P(3.5, 4));
- assert(c.size() == 2);
- assert(r->first == 3.5);
- assert(r->second == 4);
+ const VT v2(3.5, 4);
+ r = c.insert(v2);
+ assert(c.size() == 2);
+ assert(r->first == 3.5);
+ assert(r->second == 4);
- r = c.insert(P(4.5, 4));
- assert(c.size() == 3);
- assert(r->first == 4.5);
- assert(r->second == 4);
+ const VT v3(4.5, 4);
+ r = c.insert(v3);
+ assert(c.size() == 3);
+ assert(r->first == 4.5);
+ assert(r->second == 4);
- r = c.insert(P(5.5, 4));
- assert(c.size() == 4);
- assert(r->first == 5.5);
- assert(r->second == 4);
- }
+ const VT v4(5.5, 4);
+ r = c.insert(v4);
+ assert(c.size() == 4);
+ assert(r->first == 5.5);
+ assert(r->second == 4);
+}
+
+int main()
+{
+ do_insert_const_lvalue_test<std::unordered_multimap<double, int> >();
#if TEST_STD_VER >= 11
{
typedef std::unordered_multimap<double, int, std::hash<double>, std::equal_to<double>,
min_allocator<std::pair<const double, int>>> C;
- typedef C::iterator R;
- typedef C::value_type P;
- C c;
- R r = c.insert(P(3.5, 3));
- assert(c.size() == 1);
- assert(r->first == 3.5);
- assert(r->second == 3);
-
- r = c.insert(P(3.5, 4));
- assert(c.size() == 2);
- assert(r->first == 3.5);
- assert(r->second == 4);
-
- r = c.insert(P(4.5, 4));
- assert(c.size() == 3);
- assert(r->first == 4.5);
- assert(r->second == 4);
-
- r = c.insert(P(5.5, 4));
- assert(c.size() == 4);
- assert(r->first == 5.5);
- assert(r->second == 4);
+ do_insert_const_lvalue_test<C>();
}
#endif
}
diff --git a/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_hint_const_lvalue.pass.cpp b/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_hint_const_lvalue.pass.cpp
index c920ae93553..34cb1b293c8 100644
--- a/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_hint_const_lvalue.pass.cpp
+++ b/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_hint_const_lvalue.pass.cpp
@@ -24,61 +24,47 @@
#include "min_allocator.h"
-int main()
+template<class Container>
+void do_insert_const_lvalue_test()
{
- {
- typedef std::unordered_multimap<double, int> C;
- typedef C::iterator R;
- typedef C::value_type P;
- C c;
- C::const_iterator e = c.end();
- R r = c.insert(e, P(3.5, 3));
- assert(c.size() == 1);
- assert(r->first == 3.5);
- assert(r->second == 3);
+ typedef Container C;
+ typedef typename C::iterator R;
+ typedef typename C::value_type VT;
+ C c;
+ typename C::const_iterator e = c.end();
+ const VT v1(3.5, 3);
+ R r = c.insert(e, v1);
+ assert(c.size() == 1);
+ assert(r->first == 3.5);
+ assert(r->second == 3);
- r = c.insert(c.end(), P(3.5, 4));
- assert(c.size() == 2);
- assert(r->first == 3.5);
- assert(r->second == 4);
+ const VT v2(3.5, 4);
+ r = c.insert(c.end(), v2);
+ assert(c.size() == 2);
+ assert(r->first == 3.5);
+ assert(r->second == 4);
- r = c.insert(c.end(), P(4.5, 4));
- assert(c.size() == 3);
- assert(r->first == 4.5);
- assert(r->second == 4);
+ const VT v3(4.5, 4);
+ r = c.insert(c.end(), v3);
+ assert(c.size() == 3);
+ assert(r->first == 4.5);
+ assert(r->second == 4);
- r = c.insert(c.end(), P(5.5, 4));
- assert(c.size() == 4);
- assert(r->first == 5.5);
- assert(r->second == 4);
- }
+ const VT v4(5.5, 4);
+ r = c.insert(c.end(), v4);
+ assert(c.size() == 4);
+ assert(r->first == 5.5);
+ assert(r->second == 4);
+}
+
+int main()
+{
+ do_insert_const_lvalue_test<std::unordered_multimap<double, int> >();
#if TEST_STD_VER >= 11
{
typedef std::unordered_multimap<double, int, std::hash<double>, std::equal_to<double>,
min_allocator<std::pair<const double, int>>> C;
- typedef C::iterator R;
- typedef C::value_type P;
- C c;
- C::const_iterator e = c.end();
- R r = c.insert(e, P(3.5, 3));
- assert(c.size() == 1);
- assert(r->first == 3.5);
- assert(r->second == 3);
-
- r = c.insert(c.end(), P(3.5, 4));
- assert(c.size() == 2);
- assert(r->first == 3.5);
- assert(r->second == 4);
-
- r = c.insert(c.end(), P(4.5, 4));
- assert(c.size() == 3);
- assert(r->first == 4.5);
- assert(r->second == 4);
-
- r = c.insert(c.end(), P(5.5, 4));
- assert(c.size() == 4);
- assert(r->first == 5.5);
- assert(r->second == 4);
+ do_insert_const_lvalue_test<C>();
}
#endif
#if _LIBCPP_DEBUG >= 1
diff --git a/libcxx/test/std/containers/unord/unord.multiset/insert_const_lvalue.pass.cpp b/libcxx/test/std/containers/unord/unord.multiset/insert_const_lvalue.pass.cpp
index 946858ea53d..414e8fa4878 100644
--- a/libcxx/test/std/containers/unord/unord.multiset/insert_const_lvalue.pass.cpp
+++ b/libcxx/test/std/containers/unord/unord.multiset/insert_const_lvalue.pass.cpp
@@ -20,51 +20,41 @@
#include "min_allocator.h"
-int main()
+template<class Container>
+void do_insert_const_lvalue_test()
{
- {
- typedef std::unordered_multiset<double> C;
- typedef C::iterator R;
- typedef C::value_type P;
- C c;
- R r = c.insert(P(3.5));
- assert(c.size() == 1);
- assert(*r == 3.5);
-
- r = c.insert(P(3.5));
- assert(c.size() == 2);
- assert(*r == 3.5);
-
- r = c.insert(P(4.5));
- assert(c.size() == 3);
- assert(*r == 4.5);
+ typedef Container C;
+ typedef typename C::iterator R;
+ typedef typename C::value_type VT;
+ C c;
+ const VT v1(3.5);
+ R r = c.insert(v1);
+ assert(c.size() == 1);
+ assert(*r == 3.5);
+
+ r = c.insert(v1);
+ assert(c.size() == 2);
+ assert(*r == 3.5);
+
+ const VT v2(4.5);
+ r = c.insert(v2);
+ assert(c.size() == 3);
+ assert(*r == 4.5);
+
+ const VT v3(5.5);
+ r = c.insert(v3);
+ assert(c.size() == 4);
+ assert(*r == 5.5);
+}
- r = c.insert(P(5.5));
- assert(c.size() == 4);
- assert(*r == 5.5);
- }
+int main()
+{
+ do_insert_const_lvalue_test<std::unordered_multiset<double> >();
#if TEST_STD_VER >= 11
{
typedef std::unordered_multiset<double, std::hash<double>,
- std::equal_to<double>, min_allocator<double>> C;
- typedef C::iterator R;
- typedef C::value_type P;
- C c;
- R r = c.insert(P(3.5));
- assert(c.size() == 1);
- assert(*r == 3.5);
-
- r = c.insert(P(3.5));
- assert(c.size() == 2);
- assert(*r == 3.5);
-
- r = c.insert(P(4.5));
- assert(c.size() == 3);
- assert(*r == 4.5);
-
- r = c.insert(P(5.5));
- assert(c.size() == 4);
- assert(*r == 5.5);
+ std::equal_to<double>, min_allocator<double>> C;
+ do_insert_const_lvalue_test<C>();
}
#endif
}
diff --git a/libcxx/test/std/containers/unord/unord.multiset/insert_hint_const_lvalue.pass.cpp b/libcxx/test/std/containers/unord/unord.multiset/insert_hint_const_lvalue.pass.cpp
index a6ab26659b5..8ce6a5efbc1 100644
--- a/libcxx/test/std/containers/unord/unord.multiset/insert_hint_const_lvalue.pass.cpp
+++ b/libcxx/test/std/containers/unord/unord.multiset/insert_hint_const_lvalue.pass.cpp
@@ -24,53 +24,42 @@
#include "min_allocator.h"
-int main()
+template<class Container>
+void do_insert_hint_const_lvalue_test()
{
- {
- typedef std::unordered_multiset<double> C;
- typedef C::iterator R;
- typedef C::value_type P;
- C c;
- C::const_iterator e = c.end();
- R r = c.insert(e, P(3.5));
- assert(c.size() == 1);
- assert(*r == 3.5);
+ typedef Container C;
+ typedef typename C::iterator R;
+ typedef typename C::value_type VT;
+ C c;
+ typename C::const_iterator e = c.end();
+ const VT v1(3.5);
+ R r = c.insert(e, v1);
+ assert(c.size() == 1);
+ assert(*r == 3.5);
- r = c.insert(c.end(), P(3.5));
- assert(c.size() == 2);
- assert(*r == 3.5);
+ r = c.insert(c.end(), v1);
+ assert(c.size() == 2);
+ assert(*r == 3.5);
- r = c.insert(c.end(), P(4.5));
- assert(c.size() == 3);
- assert(*r == 4.5);
+ const VT v2(4.5);
+ r = c.insert(c.end(), v2);
+ assert(c.size() == 3);
+ assert(*r == 4.5);
- r = c.insert(c.end(), P(5.5));
- assert(c.size() == 4);
- assert(*r == 5.5);
- }
+ const VT v3(5.5);
+ r = c.insert(c.end(), v3);
+ assert(c.size() == 4);
+ assert(*r == 5.5);
+}
+
+int main()
+{
+ do_insert_hint_const_lvalue_test<std::unordered_multiset<double> >();
#if TEST_STD_VER >= 11
{
typedef std::unordered_multiset<double, std::hash<double>,
- std::equal_to<double>, min_allocator<double>> C;
- typedef C::iterator R;
- typedef C::value_type P;
- C c;
- C::const_iterator e = c.end();
- R r = c.insert(e, P(3.5));
- assert(c.size() == 1);
- assert(*r == 3.5);
-
- r = c.insert(c.end(), P(3.5));
- assert(c.size() == 2);
- assert(*r == 3.5);
-
- r = c.insert(c.end(), P(4.5));
- assert(c.size() == 3);
- assert(*r == 4.5);
-
- r = c.insert(c.end(), P(5.5));
- assert(c.size() == 4);
- assert(*r == 5.5);
+ std::equal_to<double>, min_allocator<double>> C;
+ do_insert_hint_const_lvalue_test<C>();
}
#endif
#if _LIBCPP_DEBUG >= 1
diff --git a/libcxx/test/std/containers/unord/unord.set/insert_const_lvalue.pass.cpp b/libcxx/test/std/containers/unord/unord.set/insert_const_lvalue.pass.cpp
index fe45b98a33a..712176ede59 100644
--- a/libcxx/test/std/containers/unord/unord.set/insert_const_lvalue.pass.cpp
+++ b/libcxx/test/std/containers/unord/unord.set/insert_const_lvalue.pass.cpp
@@ -20,59 +20,45 @@
#include "min_allocator.h"
-int main()
+template<class Container>
+void do_insert_const_lvalue_test()
{
- {
- typedef std::unordered_set<double> C;
- typedef std::pair<C::iterator, bool> R;
- typedef C::value_type P;
- C c;
- R r = c.insert(P(3.5));
- assert(c.size() == 1);
- assert(*r.first == 3.5);
- assert(r.second);
+ typedef Container C;
+ typedef std::pair<typename C::iterator, bool> R;
+ typedef typename C::value_type VT;
+ C c;
+ const VT v1(3.5);
+ R r = c.insert(v1);
+ assert(c.size() == 1);
+ assert(*r.first == 3.5);
+ assert(r.second);
- r = c.insert(P(3.5));
- assert(c.size() == 1);
- assert(*r.first == 3.5);
- assert(!r.second);
+ r = c.insert(v1);
+ assert(c.size() == 1);
+ assert(*r.first == 3.5);
+ assert(!r.second);
- r = c.insert(P(4.5));
- assert(c.size() == 2);
- assert(*r.first == 4.5);
- assert(r.second);
+ const VT v2(4.5);
+ r = c.insert(v2);
+ assert(c.size() == 2);
+ assert(*r.first == 4.5);
+ assert(r.second);
- r = c.insert(P(5.5));
- assert(c.size() == 3);
- assert(*r.first == 5.5);
- assert(r.second);
- }
+ const VT v3(5.5);
+ r = c.insert(v3);
+ assert(c.size() == 3);
+ assert(*r.first == 5.5);
+ assert(r.second);
+}
+
+int main()
+{
+ do_insert_const_lvalue_test<std::unordered_set<double> >();
#if TEST_STD_VER >= 11
{
typedef std::unordered_set<double, std::hash<double>,
std::equal_to<double>, min_allocator<double>> C;
- typedef std::pair<C::iterator, bool> R;
- typedef C::value_type P;
- C c;
- R r = c.insert(P(3.5));
- assert(c.size() == 1);
- assert(*r.first == 3.5);
- assert(r.second);
-
- r = c.insert(P(3.5));
- assert(c.size() == 1);
- assert(*r.first == 3.5);
- assert(!r.second);
-
- r = c.insert(P(4.5));
- assert(c.size() == 2);
- assert(*r.first == 4.5);
- assert(r.second);
-
- r = c.insert(P(5.5));
- assert(c.size() == 3);
- assert(*r.first == 5.5);
- assert(r.second);
+ do_insert_const_lvalue_test<C>();
}
#endif
}
diff --git a/libcxx/test/std/containers/unord/unord.set/insert_hint_const_lvalue.pass.cpp b/libcxx/test/std/containers/unord/unord.set/insert_hint_const_lvalue.pass.cpp
index d3bbecc95ad..50f0f6bc847 100644
--- a/libcxx/test/std/containers/unord/unord.set/insert_hint_const_lvalue.pass.cpp
+++ b/libcxx/test/std/containers/unord/unord.set/insert_hint_const_lvalue.pass.cpp
@@ -24,53 +24,42 @@
#include "min_allocator.h"
-int main()
+template<class Container>
+void do_insert_hint_const_lvalue_test()
{
- {
- typedef std::unordered_set<double> C;
- typedef C::iterator R;
- typedef C::value_type P;
- C c;
- C::const_iterator e = c.end();
- R r = c.insert(e, P(3.5));
- assert(c.size() == 1);
- assert(*r == 3.5);
+ typedef Container C;
+ typedef typename C::iterator R;
+ typedef typename C::value_type VT;
+ C c;
+ typename C::const_iterator e = c.end();
+ const VT v1(3.5);
+ R r = c.insert(e, v1);
+ assert(c.size() == 1);
+ assert(*r == 3.5);
- r = c.insert(e, P(3.5));
- assert(c.size() == 1);
- assert(*r == 3.5);
+ r = c.insert(e, v1);
+ assert(c.size() == 1);
+ assert(*r == 3.5);
- r = c.insert(e, P(4.5));
- assert(c.size() == 2);
- assert(*r == 4.5);
+ const VT v2(4.5);
+ r = c.insert(e, v2);
+ assert(c.size() == 2);
+ assert(*r == 4.5);
- r = c.insert(e, P(5.5));
- assert(c.size() == 3);
- assert(*r == 5.5);
- }
+ const VT v3(5.5);
+ r = c.insert(e, v3);
+ assert(c.size() == 3);
+ assert(*r == 5.5);
+}
+
+int main()
+{
+ do_insert_hint_const_lvalue_test<std::unordered_set<double> >();
#if TEST_STD_VER >= 11
{
typedef std::unordered_set<double, std::hash<double>,
std::equal_to<double>, min_allocator<double>> C;
- typedef C::iterator R;
- typedef C::value_type P;
- C c;
- C::const_iterator e = c.end();
- R r = c.insert(e, P(3.5));
- assert(c.size() == 1);
- assert(*r == 3.5);
-
- r = c.insert(e, P(3.5));
- assert(c.size() == 1);
- assert(*r == 3.5);
-
- r = c.insert(e, P(4.5));
- assert(c.size() == 2);
- assert(*r == 4.5);
-
- r = c.insert(e, P(5.5));
- assert(c.size() == 3);
- assert(*r == 5.5);
+ do_insert_hint_const_lvalue_test<C>();
}
#endif
#if _LIBCPP_DEBUG >= 1
OpenPOWER on IntegriCloud