mirror of
https://github.com/boostorg/core.git
synced 2025-07-30 04:47:24 +02:00
Exclude g++4.7 from constexpr implementation
This commit is contained in:
@ -16,9 +16,9 @@ http://www.boost.org/LICENSE_1_0.txt)
|
|||||||
|
|
||||||
#include <boost/config.hpp>
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
#if BOOST_MSVC_FULL_VER >= 190024215
|
#if defined(BOOST_MSVC_FULL_VER) && BOOST_MSVC_FULL_VER >= 190024215
|
||||||
#define BOOST_CORE_HAS_BUILTIN_ADDRESSOF
|
#define BOOST_CORE_HAS_BUILTIN_ADDRESSOF
|
||||||
#elif BOOST_GCC >= 70000
|
#elif defined(BOOST_GCC) && BOOST_GCC >= 70000
|
||||||
#define BOOST_CORE_HAS_BUILTIN_ADDRESSOF
|
#define BOOST_CORE_HAS_BUILTIN_ADDRESSOF
|
||||||
#elif defined(__has_builtin)
|
#elif defined(__has_builtin)
|
||||||
#if __has_builtin(__builtin_addressof)
|
#if __has_builtin(__builtin_addressof)
|
||||||
@ -120,7 +120,8 @@ struct address_of<const volatile addressof_null_t> {
|
|||||||
defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \
|
defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \
|
||||||
defined(BOOST_NO_CXX11_CONSTEXPR) || \
|
defined(BOOST_NO_CXX11_CONSTEXPR) || \
|
||||||
defined(BOOST_NO_CXX11_DECLTYPE) || \
|
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
|
#define BOOST_CORE_NO_CONSTEXPR_ADDRESSOF
|
||||||
|
|
||||||
template<class T>
|
template<class T>
|
||||||
@ -172,13 +173,7 @@ const T (*addressof(const T (&o)[N]) BOOST_NOEXCEPT)[N]
|
|||||||
namespace detail {
|
namespace detail {
|
||||||
|
|
||||||
template<class T>
|
template<class T>
|
||||||
struct addressof_rvalue {
|
T&& addressof_declval() BOOST_NOEXCEPT;
|
||||||
typedef T&& type;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<class T>
|
|
||||||
typename addressof_rvalue<T>::type
|
|
||||||
addressof_declval() BOOST_NOEXCEPT;
|
|
||||||
|
|
||||||
template<class>
|
template<class>
|
||||||
struct addressof_void {
|
struct addressof_void {
|
||||||
@ -196,9 +191,7 @@ struct addressof_member_operator<T, typename
|
|||||||
static constexpr bool value = true;
|
static constexpr bool value = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
#if BOOST_WORKAROUND(BOOST_INTEL, < 1600) || \
|
#if BOOST_WORKAROUND(BOOST_INTEL, < 1600)
|
||||||
(defined(BOOST_GCC) && \
|
|
||||||
BOOST_WORKAROUND(BOOST_GCC, < 40800))
|
|
||||||
struct addressof_addressable { };
|
struct addressof_addressable { };
|
||||||
|
|
||||||
addressof_addressable*
|
addressof_addressable*
|
||||||
|
Reference in New Issue
Block a user