diff --git a/test/std/containers/unord/unord.map/bucket.pass.cpp b/test/std/containers/unord/unord.map/bucket.pass.cpp
index 522b709..47bc933 100644
--- a/test/std/containers/unord/unord.map/bucket.pass.cpp
+++ b/test/std/containers/unord/unord.map/bucket.pass.cpp
@@ -70,7 +70,7 @@
     {
         typedef std::unordered_map<int, std::string> C;
         C c;
-        C::size_type i = c.bucket(3);
+        (void) c.bucket(3);
         assert(false);
     }
 #endif
diff --git a/test/std/containers/unord/unord.map/bucket_size.pass.cpp b/test/std/containers/unord/unord.map/bucket_size.pass.cpp
index 439d2b5..d461601 100644
--- a/test/std/containers/unord/unord.map/bucket_size.pass.cpp
+++ b/test/std/containers/unord/unord.map/bucket_size.pass.cpp
@@ -74,7 +74,7 @@
     {
         typedef std::unordered_map<int, std::string> C;
         C c;
-        C::size_type i = c.bucket_size(3);
+        (void) c.bucket_size(3);
         assert(false);
     }
 #endif
diff --git a/test/std/containers/unord/unord.multimap/bucket.pass.cpp b/test/std/containers/unord/unord.multimap/bucket.pass.cpp
index c6c8b21..fc40eb8 100644
--- a/test/std/containers/unord/unord.multimap/bucket.pass.cpp
+++ b/test/std/containers/unord/unord.multimap/bucket.pass.cpp
@@ -70,7 +70,7 @@
     {
         typedef std::unordered_multimap<int, std::string> C;
         C c;
-        C::size_type i = c.bucket(3);
+        (void) c.bucket(3);
         assert(false);
     }
 #endif
diff --git a/test/std/containers/unord/unord.multimap/bucket_size.pass.cpp b/test/std/containers/unord/unord.multimap/bucket_size.pass.cpp
index f491975..64169cf 100644
--- a/test/std/containers/unord/unord.multimap/bucket_size.pass.cpp
+++ b/test/std/containers/unord/unord.multimap/bucket_size.pass.cpp
@@ -78,7 +78,7 @@
     {
         typedef std::unordered_multimap<int, std::string> C;
         C c;
-        C::size_type i = c.bucket_size(3);
+        (void) c.bucket_size(3);
         assert(false);
     }
 #endif
diff --git a/test/std/containers/unord/unord.multiset/bucket.pass.cpp b/test/std/containers/unord/unord.multiset/bucket.pass.cpp
index 4aeb849..262a840 100644
--- a/test/std/containers/unord/unord.multiset/bucket.pass.cpp
+++ b/test/std/containers/unord/unord.multiset/bucket.pass.cpp
@@ -69,7 +69,7 @@
     {
         typedef std::unordered_multiset<int> C;
         C c;
-        C::size_type i = c.bucket(3);
+        (void) c.bucket(3);
         assert(false);
     }
 #endif
diff --git a/test/std/containers/unord/unord.multiset/bucket_size.pass.cpp b/test/std/containers/unord/unord.multiset/bucket_size.pass.cpp
index 99b7697..a64a178 100644
--- a/test/std/containers/unord/unord.multiset/bucket_size.pass.cpp
+++ b/test/std/containers/unord/unord.multiset/bucket_size.pass.cpp
@@ -77,7 +77,7 @@
     {
         typedef std::unordered_multiset<int> C;
         C c;
-        C::size_type i = c.bucket_size(3);
+        (void) c.bucket_size(3);
         assert(false);
     }
 #endif
diff --git a/test/std/containers/unord/unord.multiset/db_iterators_7.pass.cpp b/test/std/containers/unord/unord.multiset/db_iterators_7.pass.cpp
index 8da6302..3b5c458 100644
--- a/test/std/containers/unord/unord.multiset/db_iterators_7.pass.cpp
+++ b/test/std/containers/unord/unord.multiset/db_iterators_7.pass.cpp
@@ -37,7 +37,7 @@
 #if TEST_STD_VER >= 11
     {
     typedef int T;
-    typedef std::unordered_multiset<T, min_allocator<T>> C;
+    typedef std::unordered_multiset<T, std::hash<T>, std::equal_to<T>, min_allocator<T>> C;
     C c(1);
     C::iterator i = c.begin();
     ++i;
diff --git a/test/std/containers/unord/unord.multiset/db_iterators_8.pass.cpp b/test/std/containers/unord/unord.multiset/db_iterators_8.pass.cpp
index 8bc1e5c..c86f4a2 100644
--- a/test/std/containers/unord/unord.multiset/db_iterators_8.pass.cpp
+++ b/test/std/containers/unord/unord.multiset/db_iterators_8.pass.cpp
@@ -29,16 +29,16 @@
     typedef std::unordered_multiset<T> C;
     C c(1);
     C::iterator i = c.end();
-    T j = *i;
+    (void) *i;
     assert(false);
     }
 #if TEST_STD_VER >= 11
     {
     typedef int T;
-    typedef std::unordered_multiset<T, min_allocator<T>> C;
+    typedef std::unordered_multiset<T, std::hash<T>, std::equal_to<T>, min_allocator<T>> C;
     C c(1);
     C::iterator i = c.end();
-    T j = *i;
+    (void) *i;
     assert(false);
     }
 #endif
diff --git a/test/std/containers/unord/unord.multiset/db_local_iterators_7.pass.cpp b/test/std/containers/unord/unord.multiset/db_local_iterators_7.pass.cpp
index fbf40ca..a04ad80 100644
--- a/test/std/containers/unord/unord.multiset/db_local_iterators_7.pass.cpp
+++ b/test/std/containers/unord/unord.multiset/db_local_iterators_7.pass.cpp
@@ -36,7 +36,7 @@
 #if TEST_STD_VER >= 11
     {
     typedef int T;
-    typedef std::unordered_multiset<T, min_allocator<T>> C;
+    typedef std::unordered_multiset<T, std::hash<T>, std::equal_to<T>, min_allocator<T>> C;
     C c(1);
     C::local_iterator i = c.begin(0);
     ++i;
diff --git a/test/std/containers/unord/unord.multiset/db_local_iterators_8.pass.cpp b/test/std/containers/unord/unord.multiset/db_local_iterators_8.pass.cpp
index 53c9c9b..85e1cca 100644
--- a/test/std/containers/unord/unord.multiset/db_local_iterators_8.pass.cpp
+++ b/test/std/containers/unord/unord.multiset/db_local_iterators_8.pass.cpp
@@ -29,16 +29,16 @@
     typedef std::unordered_multiset<T> C;
     C c(1);
     C::local_iterator i = c.end(0);
-    T j = *i;
+    (void) *i;
     assert(false);
     }
 #if TEST_STD_VER >= 11
     {
     typedef int T;
-    typedef std::unordered_multiset<T, min_allocator<T>> C;
+    typedef std::unordered_multiset<T, std::hash<T>, std::equal_to<T>, min_allocator<T>> C;
     C c(1);
     C::local_iterator i = c.end(0);
-    T j = *i;
+    (void) *i;
     assert(false);
     }
 #endif
diff --git a/test/std/containers/unord/unord.set/bucket.pass.cpp b/test/std/containers/unord/unord.set/bucket.pass.cpp
index 2215b99..4b2cb0d 100644
--- a/test/std/containers/unord/unord.set/bucket.pass.cpp
+++ b/test/std/containers/unord/unord.set/bucket.pass.cpp
@@ -68,7 +68,7 @@
     {
         typedef std::unordered_set<int> C;
         C c;
-        C::size_type i = c.bucket(3);
+        (void) c.bucket(3);
         assert(false);
     }
 #endif
diff --git a/test/std/containers/unord/unord.set/bucket_size.pass.cpp b/test/std/containers/unord/unord.set/bucket_size.pass.cpp
index 6ca89d5..5cea7fe 100644
--- a/test/std/containers/unord/unord.set/bucket_size.pass.cpp
+++ b/test/std/containers/unord/unord.set/bucket_size.pass.cpp
@@ -72,7 +72,7 @@
     {
         typedef std::unordered_set<int> C;
         C c;
-        C::size_type i = c.bucket_size(3);
+        (void) c.bucket_size(3);
         assert(false);
     }
 #endif
diff --git a/test/std/containers/unord/unord.set/db_iterators_7.pass.cpp b/test/std/containers/unord/unord.set/db_iterators_7.pass.cpp
index 8420de6..614a0fb 100644
--- a/test/std/containers/unord/unord.set/db_iterators_7.pass.cpp
+++ b/test/std/containers/unord/unord.set/db_iterators_7.pass.cpp
@@ -37,7 +37,7 @@
 #if TEST_STD_VER >= 11
     {
     typedef int T;
-    typedef std::unordered_set<T, min_allocator<T>> C;
+    typedef std::unordered_set<T, std::hash<T>, std::equal_to<T>, min_allocator<T>> C;
     C c(1);
     C::iterator i = c.begin();
     ++i;
diff --git a/test/std/containers/unord/unord.set/db_iterators_8.pass.cpp b/test/std/containers/unord/unord.set/db_iterators_8.pass.cpp
index 14dccf9..1fd0e8e 100644
--- a/test/std/containers/unord/unord.set/db_iterators_8.pass.cpp
+++ b/test/std/containers/unord/unord.set/db_iterators_8.pass.cpp
@@ -29,16 +29,16 @@
     typedef std::unordered_set<T> C;
     C c(1);
     C::iterator i = c.end();
-    T j = *i;
+    (void) *i;
     assert(false);
     }
 #if TEST_STD_VER >= 11
     {
     typedef int T;
-    typedef std::unordered_set<T, min_allocator<T>> C;
+    typedef std::unordered_set<T, std::hash<T>, std::equal_to<T>, min_allocator<T>> C;
     C c(1);
     C::iterator i = c.end();
-    T j = *i;
+    (void) *i;
     assert(false);
     }
 #endif
diff --git a/test/std/containers/unord/unord.set/db_local_iterators_7.pass.cpp b/test/std/containers/unord/unord.set/db_local_iterators_7.pass.cpp
index ac066af..ec00103 100644
--- a/test/std/containers/unord/unord.set/db_local_iterators_7.pass.cpp
+++ b/test/std/containers/unord/unord.set/db_local_iterators_7.pass.cpp
@@ -36,7 +36,7 @@
 #if TEST_STD_VER >= 11
     {
     typedef int T;
-    typedef std::unordered_set<T, min_allocator<T>> C;
+    typedef std::unordered_set<T, std::hash<T>, std::equal_to<T>, min_allocator<T>> C;
     C c(1);
     C::local_iterator i = c.begin(0);
     ++i;
diff --git a/test/std/containers/unord/unord.set/db_local_iterators_8.pass.cpp b/test/std/containers/unord/unord.set/db_local_iterators_8.pass.cpp
index a1595cd..3d31858 100644
--- a/test/std/containers/unord/unord.set/db_local_iterators_8.pass.cpp
+++ b/test/std/containers/unord/unord.set/db_local_iterators_8.pass.cpp
@@ -29,16 +29,17 @@
     typedef std::unordered_set<T> C;
     C c(1);
     C::local_iterator i = c.end(0);
-    T j = *i;
+    (void) *i;
+
     assert(false);
     }
 #if TEST_STD_VER >= 11
     {
     typedef int T;
-    typedef std::unordered_set<T, min_allocator<T>> C;
+    typedef std::unordered_set<T, std::hash<T>, std::equal_to<T>, min_allocator<T>> C;
     C c(1);
     C::local_iterator i = c.end(0);
-    T j = *i;
+    (void) *i;
     assert(false);
     }
 #endif
diff --git a/test/std/containers/unord/unord.set/emplace_hint.pass.cpp b/test/std/containers/unord/unord.set/emplace_hint.pass.cpp
index 55b3ccb..3e82bb3 100644
--- a/test/std/containers/unord/unord.set/emplace_hint.pass.cpp
+++ b/test/std/containers/unord/unord.set/emplace_hint.pass.cpp
@@ -30,12 +30,11 @@
         typedef std::unordered_set<Emplaceable> C;
         typedef C::iterator R;
         C c;
-        C::const_iterator e = c.end();
-        R r = c.emplace_hint(e);
+        R r = c.emplace_hint(c.end());
         assert(c.size() == 1);
         assert(*r == Emplaceable());
 
-        r = c.emplace_hint(e, Emplaceable(5, 6));
+        r = c.emplace_hint(c.end(), Emplaceable(5, 6));
         assert(c.size() == 2);
         assert(*r == Emplaceable(5, 6));
 
@@ -48,12 +47,11 @@
                       std::equal_to<Emplaceable>, min_allocator<Emplaceable>> C;
         typedef C::iterator R;
         C c;
-        C::const_iterator e = c.end();
-        R r = c.emplace_hint(e);
+        R r = c.emplace_hint(c.end());
         assert(c.size() == 1);
         assert(*r == Emplaceable());
 
-        r = c.emplace_hint(e, Emplaceable(5, 6));
+        r = c.emplace_hint(c.end(), Emplaceable(5, 6));
         assert(c.size() == 2);
         assert(*r == Emplaceable(5, 6));
 
diff --git a/test/std/containers/unord/unord.set/insert_hint_rvalue.pass.cpp b/test/std/containers/unord/unord.set/insert_hint_rvalue.pass.cpp
index 071708e..1ec66ee 100644
--- a/test/std/containers/unord/unord.set/insert_hint_rvalue.pass.cpp
+++ b/test/std/containers/unord/unord.set/insert_hint_rvalue.pass.cpp
@@ -28,8 +28,7 @@
         typedef C::iterator R;
         typedef double P;
         C c;
-        C::const_iterator e = c.end();
-        R r = c.insert(e, P(3.5));
+        R r = c.insert(c.end(), P(3.5));
         assert(c.size() == 1);
         assert(*r == 3.5);
 
@@ -37,11 +36,11 @@
         assert(c.size() == 1);
         assert(*r == 3.5);
 
-        r = c.insert(e, P(4.5));
+        r = c.insert(c.end(), P(4.5));
         assert(c.size() == 2);
         assert(*r == 4.5);
 
-        r = c.insert(e, P(5.5));
+        r = c.insert(c.end(), P(5.5));
         assert(c.size() == 3);
         assert(*r == 5.5);
     }
@@ -51,8 +50,7 @@
         typedef C::iterator R;
         typedef MoveOnly P;
         C c;
-        C::const_iterator e = c.end();
-        R r = c.insert(e, P(3));
+        R r = c.insert(c.end(), P(3));
         assert(c.size() == 1);
         assert(*r == 3);
 
@@ -60,11 +58,11 @@
         assert(c.size() == 1);
         assert(*r == 3);
 
-        r = c.insert(e, P(4));
+        r = c.insert(c.end(), P(4));
         assert(c.size() == 2);
         assert(*r == 4);
 
-        r = c.insert(e, P(5));
+        r = c.insert(c.end(), P(5));
         assert(c.size() == 3);
         assert(*r == 5);
     }
@@ -74,8 +72,7 @@
         typedef C::iterator R;
         typedef double P;
         C c;
-        C::const_iterator e = c.end();
-        R r = c.insert(e, P(3.5));
+        R r = c.insert(c.end(), P(3.5));
         assert(c.size() == 1);
         assert(*r == 3.5);
 
@@ -83,11 +80,11 @@
         assert(c.size() == 1);
         assert(*r == 3.5);
 
-        r = c.insert(e, P(4.5));
+        r = c.insert(c.end(), P(4.5));
         assert(c.size() == 2);
         assert(*r == 4.5);
 
-        r = c.insert(e, P(5.5));
+        r = c.insert(c.end(), P(5.5));
         assert(c.size() == 3);
         assert(*r == 5.5);
     }
@@ -97,8 +94,7 @@
         typedef C::iterator R;
         typedef MoveOnly P;
         C c;
-        C::const_iterator e = c.end();
-        R r = c.insert(e, P(3));
+        R r = c.insert(c.end(), P(3));
         assert(c.size() == 1);
         assert(*r == 3);
 
@@ -106,11 +102,11 @@
         assert(c.size() == 1);
         assert(*r == 3);
 
-        r = c.insert(e, P(4));
+        r = c.insert(c.end(), P(4));
         assert(c.size() == 2);
         assert(*r == 4);
 
-        r = c.insert(e, P(5));
+        r = c.insert(c.end(), P(5));
         assert(c.size() == 3);
         assert(*r == 5);
     }
