From 2a5349ba6661a8e022093d79660e81f120a1f205 Mon Sep 17 00:00:00 2001 From: Howard Hinnant Date: Tue, 3 Apr 2012 21:09:48 +0000 Subject: [PATCH] constexpr support for . Patch contributed by Jonathan Sauer. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@153968 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/utility | 7 +++++-- src/utility.cpp | 2 ++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/include/utility b/include/utility index 7facea3a6..a12ed91e7 100644 --- a/include/utility +++ b/include/utility @@ -206,8 +206,11 @@ move_if_noexcept(_Tp& __x) _NOEXCEPT } struct _LIBCPP_VISIBLE piecewise_construct_t { }; -//constexpr +#ifdef _LIBCPP_HAS_NO_CONSTEXPR extern const piecewise_construct_t piecewise_construct;// = piecewise_construct_t(); +#else +constexpr piecewise_construct_t piecewise_construct = piecewise_construct_t(); +#endif template struct _LIBCPP_VISIBLE pair @@ -221,7 +224,7 @@ struct _LIBCPP_VISIBLE pair // pair(const pair&) = default; // pair(pair&&) = default; - _LIBCPP_INLINE_VISIBILITY pair() : first(), second() {} + _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR pair() : first(), second() {} _LIBCPP_INLINE_VISIBILITY pair(const _T1& __x, const _T2& __y) : first(__x), second(__y) {} diff --git a/src/utility.cpp b/src/utility.cpp index 7dccffb73..deb5ffa00 100644 --- a/src/utility.cpp +++ b/src/utility.cpp @@ -11,6 +11,8 @@ _LIBCPP_BEGIN_NAMESPACE_STD +#ifdef _LIBCPP_HAS_NO_CONSTEXPR const piecewise_construct_t piecewise_construct = {}; +#endif _LIBCPP_END_NAMESPACE_STD