]> git.lyx.org Git - lyx.git/blobdiff - boost/boost/type_traits/is_class.hpp
update to boost 1.41.0
[lyx.git] / boost / boost / type_traits / is_class.hpp
index 038c6662e23bcd26cc21d68a30c43ed40a9541f0..1a2cd20157c254de641247e527a3af58cb3941ae 100644 (file)
 #ifndef BOOST_TT_IS_CLASS_HPP_INCLUDED
 #define BOOST_TT_IS_CLASS_HPP_INCLUDED
 
-#include "boost/type_traits/config.hpp"
-#   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/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>
 
 #ifdef BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
-#   include "boost/type_traits/detail/yes_no_type.hpp"
+#   include <boost/type_traits/detail/yes_no_type.hpp>
 #else
-#   include "boost/type_traits/is_scalar.hpp"
-#   include "boost/type_traits/is_array.hpp"
-#   include "boost/type_traits/is_reference.hpp"
-#   include "boost/type_traits/is_void.hpp"
-#   include "boost/type_traits/is_function.hpp"
+#   include <boost/type_traits/is_scalar.hpp>
+#   include <boost/type_traits/is_array.hpp>
+#   include <boost/type_traits/is_reference.hpp>
+#   include <boost/type_traits/is_void.hpp>
+#   include <boost/type_traits/is_function.hpp>
 #endif
 
+#endif // BOOST_IS_CLASS
+
 #ifdef __EDG_VERSION__
-#   include "boost/type_traits/remove_cv.hpp"
+#   include <boost/type_traits/remove_cv.hpp>
 #endif
 
 // should be the last #include
-#include "boost/type_traits/detail/bool_trait_def.hpp"
+#include <boost/type_traits/detail/bool_trait_def.hpp>
 
 namespace boost {
 
 namespace detail {
 
+#ifndef BOOST_IS_CLASS
 #ifdef BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
 
 // This is actually the conforming implementation which works with
@@ -111,18 +116,25 @@ struct is_class_impl
 };
 
 # 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 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
     
 } // namespace boost
 
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
+#include <boost/type_traits/detail/bool_trait_undef.hpp>
 
 #endif // BOOST_TT_IS_CLASS_HPP_INCLUDED