]> git.lyx.org Git - lyx.git/blobdiff - boost/boost/type_traits/is_polymorphic.hpp
update boost to version 1.48
[lyx.git] / boost / boost / type_traits / is_polymorphic.hpp
index afba32b886b72a6d554b3caa7f9c8269ea0562ba..8fcc69eb27985948fb0819f878c6ae6c79f59335 100644 (file)
@@ -8,13 +8,19 @@
 #ifndef BOOST_TT_IS_POLYMORPHIC_HPP
 #define BOOST_TT_IS_POLYMORPHIC_HPP
 
+#include <boost/type_traits/intrinsics.hpp>
+#ifndef BOOST_IS_POLYMORPHIC
 #include <boost/type_traits/is_class.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>
 #include <boost/detail/workaround.hpp>
 
 namespace boost{
+
+#ifndef BOOST_IS_POLYMORPHIC
+
 namespace detail{
 
 template <class T>
@@ -31,6 +37,10 @@ struct is_polymorphic_imp1
       ~d1()throw();
 #  endif 
       char padding[256];
+   private:
+      // keep some picky compilers happy:
+      d1(const d1&);
+      d1& operator=(const d1&);
    };
    struct d2 : public ncvT
    {
@@ -43,6 +53,10 @@ struct is_polymorphic_imp1
       virtual void unique_name_to_boost5487629(unique*);
 #  endif
       char padding[256];
+   private:
+      // keep some picky compilers happy:
+      d2(const d2&);
+      d2& operator=(const d2&);
    };
 # endif 
    BOOST_STATIC_CONSTANT(bool, value = (sizeof(d2) == sizeof(d1)));
@@ -87,8 +101,14 @@ struct is_polymorphic_imp
 
 BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_polymorphic,T,::boost::detail::is_polymorphic_imp<T>::value)
 
+#else // BOOST_IS_POLYMORPHIC
+
+BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_polymorphic,T,BOOST_IS_POLYMORPHIC(T))
+
+#endif
+
 } // namespace boost
 
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
+#include <boost/type_traits/detail/bool_trait_undef.hpp>
 
 #endif