#define BOOST_TT_IS_CLASS_HPP_INCLUDED
#include <boost/type_traits/config.hpp>
+#include <boost/type_traits/intrinsics.hpp>
+#ifndef BOOST_IS_CLASS
# include <boost/type_traits/is_union.hpp>
# include <boost/type_traits/detail/ice_and.hpp>
# include <boost/type_traits/detail/ice_not.hpp>
# include <boost/type_traits/is_function.hpp>
#endif
+#endif // BOOST_IS_CLASS
+
#ifdef __EDG_VERSION__
# include <boost/type_traits/remove_cv.hpp>
#endif
namespace detail {
+#ifndef BOOST_IS_CLASS
#ifdef BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
// This is actually the conforming implementation which works with
};
# endif // BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
+# else // BOOST_IS_CLASS
+template <typename T>
+struct is_class_impl
+{
+ BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_CLASS(T));
+};
+# endif // BOOST_IS_CLASS
} // namespace detail
# ifdef __EDG_VERSION__
BOOST_TT_AUX_BOOL_TRAIT_DEF1(
- is_class,T, detail::is_class_impl<typename boost::remove_cv<T>::type>::value)
+ is_class,T, boost::detail::is_class_impl<typename boost::remove_cv<T>::type>::value)
# else
BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_class,T,::boost::detail::is_class_impl<T>::value)
# endif