summaryrefslogtreecommitdiff
path: root/libcxx/test/utilities/allocator.adaptor/allocator.adaptor.cnstr/allocs.pass.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/test/utilities/allocator.adaptor/allocator.adaptor.cnstr/allocs.pass.cpp')
-rw-r--r--libcxx/test/utilities/allocator.adaptor/allocator.adaptor.cnstr/allocs.pass.cpp112
1 files changed, 0 insertions, 112 deletions
diff --git a/libcxx/test/utilities/allocator.adaptor/allocator.adaptor.cnstr/allocs.pass.cpp b/libcxx/test/utilities/allocator.adaptor/allocator.adaptor.cnstr/allocs.pass.cpp
deleted file mode 100644
index 603f889349f8..000000000000
--- a/libcxx/test/utilities/allocator.adaptor/allocator.adaptor.cnstr/allocs.pass.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <memory>
-
-// template <class OuterAlloc, class... InnerAllocs>
-// class scoped_allocator_adaptor
-
-// template <class OuterA2>
-// scoped_allocator_adaptor(OuterA2&& outerAlloc,
-// const InnerAllocs& ...innerAllocs);
-
-#include <scoped_allocator>
-#include <cassert>
-
-#include "../allocators.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
- {
- typedef std::scoped_allocator_adaptor<A1<int>> A;
- A1<int> a3(3);
- A a(a3);
- assert(a.outer_allocator() == A1<int>(3));
- assert(a.inner_allocator() == a);
- assert(A1<int>::copy_called == true);
- assert(A1<int>::move_called == false);
- }
- A1<int>::copy_called = false;
- {
- typedef std::scoped_allocator_adaptor<A1<int>> A;
- A a(A1<int>(3));
- assert(a.outer_allocator() == A1<int>(3));
- assert(a.inner_allocator() == a);
- assert(A1<int>::copy_called == false);
- assert(A1<int>::move_called == true);
- }
- A1<int>::move_called = false;
- {
- typedef std::scoped_allocator_adaptor<A1<int>, A2<int>> A;
- A1<int> a4(4);
- A a(a4, A2<int>(5));
- assert(A1<int>::copy_called == true);
- assert(A1<int>::move_called == false);
- assert(A2<int>::copy_called == true);
- assert(A2<int>::move_called == false);
- assert(a.outer_allocator() == A1<int>(4));
- assert(a.inner_allocator() == std::scoped_allocator_adaptor<A2<int>>(A2<int>(5)));
- }
- A1<int>::copy_called = false;
- A1<int>::move_called = false;
- A2<int>::copy_called = false;
- A2<int>::move_called = false;
- {
- typedef std::scoped_allocator_adaptor<A1<int>, A2<int>> A;
- A a(A1<int>(4), A2<int>(5));
- assert(A1<int>::copy_called == false);
- assert(A1<int>::move_called == true);
- assert(A2<int>::copy_called == true);
- assert(A2<int>::move_called == false);
- assert(a.outer_allocator() == A1<int>(4));
- assert(a.inner_allocator() == std::scoped_allocator_adaptor<A2<int>>(A2<int>(5)));
- }
- A1<int>::copy_called = false;
- A1<int>::move_called = false;
- A2<int>::copy_called = false;
- A2<int>::move_called = false;
- A1<int>::move_called = false;
- {
- typedef std::scoped_allocator_adaptor<A1<int>, A2<int>, A3<int>> A;
- A1<int> a4(4);
- A a(a4, A2<int>(5), A3<int>(6));
- assert(A1<int>::copy_called == true);
- assert(A1<int>::move_called == false);
- assert(A2<int>::copy_called == true);
- assert(A2<int>::move_called == false);
- assert(A3<int>::copy_called == true);
- assert(A3<int>::move_called == false);
- assert(a.outer_allocator() == A1<int>(4));
- assert((a.inner_allocator() ==
- std::scoped_allocator_adaptor<A2<int>, A3<int>>(A2<int>(5), A3<int>(6))));
- }
- A1<int>::copy_called = false;
- A1<int>::move_called = false;
- A2<int>::copy_called = false;
- A2<int>::move_called = false;
- A3<int>::copy_called = false;
- A3<int>::move_called = false;
- {
- typedef std::scoped_allocator_adaptor<A1<int>, A2<int>, A3<int>> A;
- A a(A1<int>(4), A2<int>(5), A3<int>(6));
- assert(A1<int>::copy_called == false);
- assert(A1<int>::move_called == true);
- assert(A2<int>::copy_called == true);
- assert(A2<int>::move_called == false);
- assert(A3<int>::copy_called == true);
- assert(A3<int>::move_called == false);
- assert(a.outer_allocator() == A1<int>(4));
- assert((a.inner_allocator() ==
- std::scoped_allocator_adaptor<A2<int>, A3<int>>(A2<int>(5), A3<int>(6))));
- }
-
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}