diff --git a/test/std/containers/associative/map/map.cons/move.pass.cpp b/test/std/containers/associative/map/map.cons/move.pass.cpp index dd68f9c39..69f762ac5 100644 --- a/test/std/containers/associative/map/map.cons/move.pass.cpp +++ b/test/std/containers/associative/map/map.cons/move.pass.cpp @@ -35,7 +35,7 @@ int main() assert(m.size() == 0); assert(distance(m.begin(), m.end()) == 0); - assert(mo.get_allocator() == A(7)); + assert(mo.get_allocator() == A(test_alloc_base::moved_value)); assert(mo.key_comp() == C(5)); assert(mo.size() == 0); assert(distance(mo.begin(), mo.end()) == 0); @@ -65,7 +65,7 @@ int main() assert(*next(m.begin()) == V(2, 1)); assert(*next(m.begin(), 2) == V(3, 1)); - assert(mo.get_allocator() == A(7)); + assert(mo.get_allocator() == A(test_alloc_base::moved_value)); assert(mo.key_comp() == C(5)); assert(mo.size() == 0); assert(distance(mo.begin(), mo.end()) == 0); diff --git a/test/std/containers/associative/multimap/multimap.cons/move.pass.cpp b/test/std/containers/associative/multimap/multimap.cons/move.pass.cpp index 769c709cf..1dc6404b0 100644 --- a/test/std/containers/associative/multimap/multimap.cons/move.pass.cpp +++ b/test/std/containers/associative/multimap/multimap.cons/move.pass.cpp @@ -35,7 +35,7 @@ int main() assert(m.size() == 0); assert(distance(m.begin(), m.end()) == 0); - assert(mo.get_allocator() == A(7)); + assert(mo.get_allocator() == A(test_alloc_base::moved_value)); assert(mo.key_comp() == C(5)); assert(mo.size() == 0); assert(distance(mo.begin(), mo.end()) == 0); @@ -71,7 +71,7 @@ int main() assert(*next(m.begin(), 7) == V(3, 1.5)); assert(*next(m.begin(), 8) == V(3, 2)); - assert(mo.get_allocator() == A(7)); + assert(mo.get_allocator() == A(test_alloc_base::moved_value)); assert(mo.key_comp() == C(5)); assert(mo.size() == 0); assert(distance(mo.begin(), mo.end()) == 0); diff --git a/test/std/containers/associative/multiset/multiset.cons/move.pass.cpp b/test/std/containers/associative/multiset/multiset.cons/move.pass.cpp index 2adfb5c37..7a43cc1c6 100644 --- a/test/std/containers/associative/multiset/multiset.cons/move.pass.cpp +++ b/test/std/containers/associative/multiset/multiset.cons/move.pass.cpp @@ -35,7 +35,7 @@ int main() assert(m.size() == 0); assert(distance(m.begin(), m.end()) == 0); - assert(mo.get_allocator() == A(7)); + assert(mo.get_allocator() == A(test_alloc_base::moved_value)); assert(mo.key_comp() == C(5)); assert(mo.size() == 0); assert(distance(mo.begin(), mo.end()) == 0); @@ -72,7 +72,7 @@ int main() assert(*next(m.begin(), 7) == 3); assert(*next(m.begin(), 8) == 3); - assert(mo.get_allocator() == A(7)); + assert(mo.get_allocator() == A(test_alloc_base::moved_value)); assert(mo.key_comp() == C(5)); assert(mo.size() == 0); assert(distance(mo.begin(), mo.end()) == 0); diff --git a/test/std/containers/associative/set/set.cons/move.pass.cpp b/test/std/containers/associative/set/set.cons/move.pass.cpp index dd313e4cd..ff87799b9 100644 --- a/test/std/containers/associative/set/set.cons/move.pass.cpp +++ b/test/std/containers/associative/set/set.cons/move.pass.cpp @@ -35,7 +35,7 @@ int main() assert(m.size() == 0); assert(distance(m.begin(), m.end()) == 0); - assert(mo.get_allocator() == A(7)); + assert(mo.get_allocator() == A(test_alloc_base::moved_value)); assert(mo.key_comp() == C(5)); assert(mo.size() == 0); assert(distance(mo.begin(), mo.end()) == 0); @@ -66,7 +66,7 @@ int main() assert(*next(m.begin()) == 2); assert(*next(m.begin(), 2) == 3); - assert(mo.get_allocator() == A(7)); + assert(mo.get_allocator() == A(test_alloc_base::moved_value)); assert(mo.key_comp() == C(5)); assert(mo.size() == 0); assert(distance(mo.begin(), mo.end()) == 0); diff --git a/test/std/containers/container.requirements/container.requirements.general/allocator_move.pass.cpp b/test/std/containers/container.requirements/container.requirements.general/allocator_move.pass.cpp index da9b7e646..81f4ad893 100644 --- a/test/std/containers/container.requirements/container.requirements.general/allocator_move.pass.cpp +++ b/test/std/containers/container.requirements/container.requirements.general/allocator_move.pass.cpp @@ -15,6 +15,7 @@ // allocator shall not exit via an exception. #include +#include #include #include #include @@ -67,6 +68,14 @@ int main() { test > >(); test > >(); test > >(); + + // libc++ stores two allocators in deque +#ifdef _LIBCPP_VERSION + int stored_allocators = 2; +#else + int stored_allocators = 1; +#endif + test > >(stored_allocators); } { // test associative containers test, test_allocator > >(); diff --git a/test/std/containers/sequences/deque/deque.cons/move.pass.cpp b/test/std/containers/sequences/deque/deque.cons/move.pass.cpp index 6e935a52b..a7264a556 100644 --- a/test/std/containers/sequences/deque/deque.cons/move.pass.cpp +++ b/test/std/containers/sequences/deque/deque.cons/move.pass.cpp @@ -32,10 +32,12 @@ int main() std::deque c2(A(2)); for (int* p = ab; p < an; ++p) c2.push_back(MoveOnly(*p)); + A old_a = c1.get_allocator(); std::deque c3 = std::move(c1); assert(c2 == c3); assert(c1.size() == 0); - assert(c3.get_allocator() == c1.get_allocator()); + assert(c3.get_allocator() == old_a); + assert(c1.get_allocator() == A(test_alloc_base::moved_value)); } { int ab[] = {3, 4, 2, 8, 0, 1, 44, 34, 45, 96, 80, 1, 13, 31, 45};