From e647763fb09674cdcb64d33908659b5bd1b4c1d1 Mon Sep 17 00:00:00 2001 From: Glen Fernandes Date: Thu, 2 Feb 2017 21:44:14 -0500 Subject: [PATCH] Exclude g++4.7 from constexpr implementation --- include/boost/core/addressof.hpp | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/include/boost/core/addressof.hpp b/include/boost/core/addressof.hpp index 70db5a9..303bd0c 100644 --- a/include/boost/core/addressof.hpp +++ b/include/boost/core/addressof.hpp @@ -16,9 +16,9 @@ http://www.boost.org/LICENSE_1_0.txt) #include -#if BOOST_MSVC_FULL_VER >= 190024215 +#if defined(BOOST_MSVC_FULL_VER) && BOOST_MSVC_FULL_VER >= 190024215 #define BOOST_CORE_HAS_BUILTIN_ADDRESSOF -#elif BOOST_GCC >= 70000 +#elif defined(BOOST_GCC) && BOOST_GCC >= 70000 #define BOOST_CORE_HAS_BUILTIN_ADDRESSOF #elif defined(__has_builtin) #if __has_builtin(__builtin_addressof) @@ -120,7 +120,8 @@ struct address_of { defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \ defined(BOOST_NO_CXX11_CONSTEXPR) || \ defined(BOOST_NO_CXX11_DECLTYPE) || \ - BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, < 190024215) + BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1900)) || \ + BOOST_WORKAROUND(BOOST_GCC, < 40800) #define BOOST_CORE_NO_CONSTEXPR_ADDRESSOF template @@ -172,13 +173,7 @@ const T (*addressof(const T (&o)[N]) BOOST_NOEXCEPT)[N] namespace detail { template -struct addressof_rvalue { - typedef T&& type; -}; - -template -typename addressof_rvalue::type -addressof_declval() BOOST_NOEXCEPT; +T&& addressof_declval() BOOST_NOEXCEPT; template struct addressof_void { @@ -196,9 +191,7 @@ struct addressof_member_operator