diff options
author | Howard Hinnant <hhinnant@apple.com> | 2011-06-22 23:51:19 +0000 |
---|---|---|
committer | Howard Hinnant <hhinnant@apple.com> | 2011-06-22 23:51:19 +0000 |
commit | 878e035ea1505d247c635f3387e80583075405b6 (patch) | |
tree | 31d90d9242b70578a17051be3a29e1120e0a80e6 /libcxx/test/utilities/utility | |
parent | 6d756895a9dd267ccb8e8c64172b53a6dd2136a0 (diff) | |
download | bcm5719-llvm-878e035ea1505d247c635f3387e80583075405b6.tar.gz bcm5719-llvm-878e035ea1505d247c635f3387e80583075405b6.zip |
test for pair piecewise construction
llvm-svn: 133667
Diffstat (limited to 'libcxx/test/utilities/utility')
-rw-r--r-- | libcxx/test/utilities/utility/pairs/pair.piecewise/piecewise_construct.pass.cpp | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/libcxx/test/utilities/utility/pairs/pair.piecewise/piecewise_construct.pass.cpp b/libcxx/test/utilities/utility/pairs/pair.piecewise/piecewise_construct.pass.cpp index cf94472f654..90476bcde28 100644 --- a/libcxx/test/utilities/utility/pairs/pair.piecewise/piecewise_construct.pass.cpp +++ b/libcxx/test/utilities/utility/pairs/pair.piecewise/piecewise_construct.pass.cpp @@ -15,8 +15,41 @@ // constexpr piecewise_construct_t piecewise_construct = piecewise_construct_t(); #include <utility> +#include <tuple> +#include <cassert> + +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<A, B> 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 } |