From a2a08b43ee4ac077d703a00538a3b0128f50c83d Mon Sep 17 00:00:00 2001 From: Howard Hinnant Date: Wed, 22 Jun 2011 23:51:19 +0000 Subject: [PATCH] test for pair piecewise construction git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@133667 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../piecewise_construct.pass.cpp | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/test/utilities/utility/pairs/pair.piecewise/piecewise_construct.pass.cpp b/test/utilities/utility/pairs/pair.piecewise/piecewise_construct.pass.cpp index cf94472f6..90476bcde 100644 --- a/test/utilities/utility/pairs/pair.piecewise/piecewise_construct.pass.cpp +++ b/test/utilities/utility/pairs/pair.piecewise/piecewise_construct.pass.cpp @@ -15,8 +15,41 @@ // constexpr piecewise_construct_t piecewise_construct = piecewise_construct_t(); #include +#include +#include + +class A +{ + int i_; + char c_; +public: + A(int i, char c) : i_(i), c_(c) {} + int get_i() const {return i_;} + char get_c() const {return c_;} +}; + +class B +{ + double d_; + unsigned u1_; + unsigned u2_; +public: + B(double d, unsigned u1, unsigned u2) : d_(d), u1_(u1), u2_(u2) {} + double get_d() const {return d_;} + unsigned get_u1() const {return u1_;} + unsigned get_u2() const {return u2_;} +}; int main() { - std::piecewise_construct_t p = std::piecewise_construct; +#ifndef _LIBCPP_HAS_NO_VARIADICS + std::pair p(std::piecewise_construct, + std::make_tuple(4, 'a'), + std::make_tuple(3.5, 6u, 2u)); + assert(p.first.get_i() == 4); + assert(p.first.get_c() == 'a'); + assert(p.second.get_d() == 3.5); + assert(p.second.get_u1() == 6u); + assert(p.second.get_u2() == 2u); +#endif }