diff options
Diffstat (limited to 'boost/type_traits/intrinsics.hpp')
-rw-r--r-- | boost/type_traits/intrinsics.hpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/boost/type_traits/intrinsics.hpp b/boost/type_traits/intrinsics.hpp index d47b33ee47..8408ec3a40 100644 --- a/boost/type_traits/intrinsics.hpp +++ b/boost/type_traits/intrinsics.hpp @@ -124,6 +124,7 @@ #endif #if defined(BOOST_CLANG) && defined(__has_feature) +# include <cstddef> # include <boost/type_traits/is_same.hpp> # include <boost/type_traits/is_reference.hpp> # include <boost/type_traits/is_volatile.hpp> @@ -131,10 +132,10 @@ # if __has_feature(is_union) # define BOOST_IS_UNION(T) __is_union(T) # endif -# if __has_feature(is_pod) && defined(_LIBCPP_VERSION) +# if (!defined(__GLIBCXX__) || (__GLIBCXX__ >= 20080306 && __GLIBCXX__ != 20080519)) && __has_feature(is_pod) # define BOOST_IS_POD(T) __is_pod(T) # endif -# if __has_feature(is_empty) && defined(_LIBCPP_VERSION) +# if (!defined(__GLIBCXX__) || (__GLIBCXX__ >= 20080306 && __GLIBCXX__ != 20080519)) && __has_feature(is_empty) # define BOOST_IS_EMPTY(T) __is_empty(T) # endif # if __has_feature(has_trivial_constructor) @@ -185,7 +186,7 @@ # define BOOST_HAS_TYPE_TRAITS_INTRINSICS #endif -#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3) && !defined(__GCCXML__))) +#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3) && !defined(__GCCXML__))) && !defined(BOOST_CLANG) # include <boost/type_traits/is_same.hpp> # include <boost/type_traits/is_reference.hpp> # include <boost/type_traits/is_volatile.hpp> |