diff options
author | Howard Hinnant <hhinnant@apple.com> | 2013-06-23 21:17:24 +0000 |
---|---|---|
committer | Howard Hinnant <hhinnant@apple.com> | 2013-06-23 21:17:24 +0000 |
commit | 14e200d14d02fd36fd1ff1fd02b9b150ce170db8 (patch) | |
tree | 064e9770be840f37d5bc39b5a51a16cb0fbd3d90 /libcxx/test/containers/sequences/deque/deque.cons/move_assign.pass.cpp | |
parent | 60c16eb7f537dcabce2aa9c0f3305d7f44287cf5 (diff) | |
download | bcm5719-llvm-14e200d14d02fd36fd1ff1fd02b9b150ce170db8.tar.gz bcm5719-llvm-14e200d14d02fd36fd1ff1fd02b9b150ce170db8.zip |
Implement full support for non-pointer pointers in custom allocators for deque.
llvm-svn: 184673
Diffstat (limited to 'libcxx/test/containers/sequences/deque/deque.cons/move_assign.pass.cpp')
-rw-r--r-- | libcxx/test/containers/sequences/deque/deque.cons/move_assign.pass.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/libcxx/test/containers/sequences/deque/deque.cons/move_assign.pass.cpp b/libcxx/test/containers/sequences/deque/deque.cons/move_assign.pass.cpp index 3990af3f458..a9e760f2fbd 100644 --- a/libcxx/test/containers/sequences/deque/deque.cons/move_assign.pass.cpp +++ b/libcxx/test/containers/sequences/deque/deque.cons/move_assign.pass.cpp @@ -16,6 +16,7 @@ #include "../../../MoveOnly.h" #include "../../../test_allocator.h" +#include "../../../min_allocator.h" int main() { @@ -68,5 +69,23 @@ int main() assert(c1.size() == 0); assert(c3.get_allocator() == A(5)); } +#if __cplusplus >= 201103L + { + int ab[] = {3, 4, 2, 8, 0, 1, 44, 34, 45, 96, 80, 1, 13, 31, 45}; + int* an = ab + sizeof(ab)/sizeof(ab[0]); + typedef min_allocator<MoveOnly> A; + std::deque<MoveOnly, A> c1(A{}); + for (int* p = ab; p < an; ++p) + c1.push_back(MoveOnly(*p)); + std::deque<MoveOnly, A> c2(A{}); + for (int* p = ab; p < an; ++p) + c2.push_back(MoveOnly(*p)); + std::deque<MoveOnly, A> c3(A{}); + c3 = std::move(c1); + assert(c2 == c3); + assert(c1.size() == 0); + assert(c3.get_allocator() == A()); + } +#endif #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES } |