summaryrefslogtreecommitdiff
path: root/boost/type_traits/intrinsics.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/type_traits/intrinsics.hpp')
-rw-r--r--boost/type_traits/intrinsics.hpp7
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>