From 51072bd6bf79ef2bc6a922079bff57c31c1effbc Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Sat, 23 Jul 2016 20:47:26 +0000 Subject: Vendor import of libc++ release_39 branch r276489: https://llvm.org/svn/llvm-project/libcxx/branches/release_39@276489 --- .../tuple.cnstr/alloc_convert_move.pass.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_convert_move.pass.cpp') diff --git a/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_convert_move.pass.cpp b/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_convert_move.pass.cpp index c862d3b64d56..d3a6add5da6a 100644 --- a/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_convert_move.pass.cpp +++ b/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_convert_move.pass.cpp @@ -40,6 +40,16 @@ struct D explicit D(int i) : B(i) {} }; +struct Explicit { + int value; + explicit Explicit(int x) : value(x) {} +}; + +struct Implicit { + int value; + Implicit(int x) : value(x) {} +}; + int main() { { @@ -81,4 +91,14 @@ int main() assert(std::get<1>(t1) == 2); assert(std::get<2>(t1)->id_ == 3); } + { + std::tuple t1(42); + std::tuple t2{std::allocator_arg, std::allocator{}, std::move(t1)}; + assert(std::get<0>(t2).value == 42); + } + { + std::tuple t1(42); + std::tuple t2 = {std::allocator_arg, std::allocator{}, std::move(t1)}; + assert(std::get<0>(t2).value == 42); + } } -- cgit v1.2.3