diff options
Diffstat (limited to '3rdParty/Boost/src/boost/type_traits/is_empty.hpp')
-rw-r--r-- | 3rdParty/Boost/src/boost/type_traits/is_empty.hpp | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/3rdParty/Boost/src/boost/type_traits/is_empty.hpp b/3rdParty/Boost/src/boost/type_traits/is_empty.hpp index 8a2c5b8..adb239e 100644 --- a/3rdParty/Boost/src/boost/type_traits/is_empty.hpp +++ b/3rdParty/Boost/src/boost/type_traits/is_empty.hpp @@ -14,19 +14,9 @@ #include <boost/type_traits/config.hpp> #include <boost/type_traits/intrinsics.hpp> -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION # include <boost/type_traits/remove_cv.hpp> # include <boost/type_traits/is_class.hpp> # include <boost/type_traits/add_reference.hpp> -#else -# include <boost/type_traits/is_reference.hpp> -# include <boost/type_traits/is_pointer.hpp> -# include <boost/type_traits/is_member_pointer.hpp> -# include <boost/type_traits/is_array.hpp> -# include <boost/type_traits/is_void.hpp> -# include <boost/type_traits/detail/ice_and.hpp> -# include <boost/type_traits/detail/ice_not.hpp> -#endif // should be always the last #include directive #include <boost/type_traits/detail/bool_trait_def.hpp> @@ -41,7 +31,6 @@ namespace boost { namespace detail { -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION #ifdef BOOST_MSVC #pragma warning(push) @@ -130,82 +119,6 @@ struct is_empty_impl #endif // __BORLANDC__ -#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -#ifdef BOOST_MSVC6_MEMBER_TEMPLATES - -template <typename T> -struct empty_helper_t1 : public T -{ - empty_helper_t1(); - int i[256]; -}; - -struct empty_helper_t2 { int i[256]; }; - -template <typename T> -struct empty_helper_base -{ - enum { value = (sizeof(empty_helper_t1<T>) == sizeof(empty_helper_t2)) }; -}; - -template <typename T> -struct empty_helper_nonbase -{ - enum { value = false }; -}; - -template <bool base> -struct empty_helper_chooser -{ - template <typename T> struct result_ - { - typedef empty_helper_nonbase<T> type; - }; -}; - -template <> -struct empty_helper_chooser<true> -{ - template <typename T> struct result_ - { - typedef empty_helper_base<T> type; - }; -}; - -template <typename T> -struct is_empty_impl -{ - typedef ::boost::detail::empty_helper_chooser< - ::boost::type_traits::ice_and< - ::boost::type_traits::ice_not< ::boost::is_reference<T>::value >::value, - ::boost::type_traits::ice_not< ::boost::is_convertible<T,double>::value >::value, - ::boost::type_traits::ice_not< ::boost::is_pointer<T>::value >::value, - ::boost::type_traits::ice_not< ::boost::is_member_pointer<T>::value >::value, - ::boost::type_traits::ice_not< ::boost::is_array<T>::value >::value, - ::boost::type_traits::ice_not< ::boost::is_void<T>::value >::value, - ::boost::type_traits::ice_not< - ::boost::is_convertible<T,void const volatile*>::value - >::value - >::value > chooser; - - typedef typename chooser::template result_<T> result; - typedef typename result::type eh_type; - - BOOST_STATIC_CONSTANT(bool, value = - (::boost::type_traits::ice_or<eh_type::value, BOOST_INTERNAL_IS_EMPTY(T)>::value)); -}; - -#else - -template <typename T> struct is_empty_impl -{ - BOOST_STATIC_CONSTANT(bool, value = BOOST_INTERNAL_IS_EMPTY(T)); -}; - -#endif // BOOST_MSVC6_MEMBER_TEMPLATES - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION // these help when the compiler has no partial specialization support: BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_empty,void,false) |