From b2e9f19caf6c834df9c5d2e7d132ce4af5170845 Mon Sep 17 00:00:00 2001 From: Howard Hinnant Date: Tue, 3 Apr 2012 21:09:48 +0000 Subject: constexpr support for . Patch contributed by Jonathan Sauer. llvm-svn: 153968 --- libcxx/include/utility | 7 +++++-- libcxx/src/utility.cpp | 2 ++ 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'libcxx') diff --git a/libcxx/include/utility b/libcxx/include/utility index 7facea3a649..a12ed91e719 100644 --- a/libcxx/include/utility +++ b/libcxx/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/libcxx/src/utility.cpp b/libcxx/src/utility.cpp index 7dccffb73e5..deb5ffa0077 100644 --- a/libcxx/src/utility.cpp +++ b/libcxx/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 -- cgit v1.2.3