Files
android_external_libcxx/test/std/utilities/utility/pairs/pairs.pair/default.pass.cpp
Eric Fiselier 9bef1ff571 [libcxx] Fix LWG Issue #2367 - Fixing std::tuple and std::pair's default constructors.
Summary: This patch implements the solution for LWG Issue #2367. See http://cplusplus.github.io/LWG/lwg-active.html#2367

Reviewers: mclow.lists, EricWF

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D13750

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@256325 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-23 08:20:26 +00:00

42 lines
960 B
C++

//===----------------------------------------------------------------------===//
//
// 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.
//
//===----------------------------------------------------------------------===//
// <utility>
// template <class T1, class T2> struct pair
// constexpr pair();
// NOTE: The SFINAE on the default constructor is tested in
// default-sfinae.pass.cpp
#include <utility>
#include <type_traits>
#include <cassert>
#include "test_macros.h"
int main()
{
{
typedef std::pair<float, short*> P;
P p;
assert(p.first == 0.0f);
assert(p.second == nullptr);
}
#if TEST_STD_VER >= 11
{
typedef std::pair<float, short*> P;
constexpr P p;
static_assert(p.first == 0.0f, "");
static_assert(p.second == nullptr, "");
}
#endif
}