diff --git a/include/boost/type_traits/intrinsics.hpp b/include/boost/type_traits/intrinsics.hpp index e5c25d3..f26e65a 100644 --- a/include/boost/type_traits/intrinsics.hpp +++ b/include/boost/type_traits/intrinsics.hpp @@ -124,6 +124,7 @@ #endif #if defined(BOOST_CLANG) && defined(__has_feature) +# include # include # include # include @@ -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)) || __has_feature(__is_pod__) +# 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)) || __has_feature(__is_empty__) +# 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)