From 5142fe4401f6238258aed976addcba26a3beeaf9 Mon Sep 17 00:00:00 2001 From: Marshall Clow Date: Tue, 6 Oct 2015 20:30:56 +0000 Subject: [PATCH] Our test allocators support move/copy construction; they should support move/copy assignment as well git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249458 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/support/allocators.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/test/support/allocators.h b/test/support/allocators.h index b7aba12e2..7c2103ff2 100644 --- a/test/support/allocators.h +++ b/test/support/allocators.h @@ -35,6 +35,8 @@ public: A1(const A1& a) TEST_NOEXCEPT : id_(a.id()) {copy_called = true;} A1(A1&& a) TEST_NOEXCEPT : id_(a.id()) {move_called = true;} + A1& operator=(const A1& a) TEST_NOEXCEPT { id_ = a.id(); copy_called = true; return *this;} + A1& operator=(A1&& a) TEST_NOEXCEPT { id_ = a.id(); move_called = true; return *this;} template A1(const A1& a) TEST_NOEXCEPT : id_(a.id()) {copy_called = true;} @@ -96,6 +98,8 @@ public: A2(const A2& a) TEST_NOEXCEPT : id_(a.id()) {copy_called = true;} A2(A2&& a) TEST_NOEXCEPT : id_(a.id()) {move_called = true;} + A2& operator=(const A2& a) TEST_NOEXCEPT { id_ = a.id(); copy_called = true; return *this;} + A2& operator=(A2&& a) TEST_NOEXCEPT { id_ = a.id(); move_called = true; return *this;} T* allocate(std::size_t n, const void* hint) { @@ -142,7 +146,9 @@ public: static bool destroy_called; A3(const A3& a) TEST_NOEXCEPT : id_(a.id()) {copy_called = true;} - A3(A3&& a) TEST_NOEXCEPT: id_(a.id()) {move_called = true;} + A3(A3&& a) TEST_NOEXCEPT : id_(a.id()) {move_called = true;} + A3& operator=(const A3& a) TEST_NOEXCEPT { id_ = a.id(); copy_called = true; return *this;} + A3& operator=(A3&& a) TEST_NOEXCEPT { id_ = a.id(); move_called = true; return *this;} template void construct(U* p, Args&& ...args)