]> git.lyx.org Git - lyx.git/blobdiff - boost/boost/type_traits/extent.hpp
update to boost 1.41.0
[lyx.git] / boost / boost / type_traits / extent.hpp
index 88f98dd2de1b3487aea7c40b1692ee46b953ddae..27e8a670fc04c197ed97e7a463f61588cd621419 100644 (file)
 #define BOOST_TT_EXTENT_HPP_INCLUDED
 
 // should be the last #include
-#include "boost/type_traits/detail/size_t_trait_def.hpp"
+#include <boost/type_traits/detail/size_t_trait_def.hpp>
 
 namespace boost {
 
 namespace detail{
 
+#if defined( __CODEGEARC__ )
+    // wrap the impl as main trait provides additional MPL lambda support
+    template < typename T, std::size_t N >
+    struct extent_imp {
+        static const std::size_t value = __array_extent(T, N);
+    };
+
+#else
+
 template <class T, std::size_t N>
 struct extent_imp
 {
@@ -114,13 +123,15 @@ struct extent_imp<T const volatile[], 0>
 };
 #endif
 #endif
-}
+
+#endif  // non-CodeGear implementation
+}   // ::boost::detail
 
 template <class T, std::size_t N = 0>
 struct extent
    : public ::boost::integral_constant<std::size_t, ::boost::detail::extent_imp<T,N>::value>
 {
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1200) 
+#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) 
    typedef ::boost::integral_constant<std::size_t, ::boost::detail::extent_imp<T,N>::value> base_; 
    using base_::value;
 #endif
@@ -129,6 +140,6 @@ struct extent
 
 } // namespace boost
 
-#include "boost/type_traits/detail/size_t_trait_undef.hpp"
+#include <boost/type_traits/detail/size_t_trait_undef.hpp>
 
 #endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED