diff options
author | Remko Tronçon <git@el-tramo.be> | 2010-02-11 12:14:00 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2010-02-11 12:14:00 (GMT) |
commit | 0efa7c32aaf21a29b42b5926cc116007056843be (patch) | |
tree | 882f663a5dd0e65694bf6077b71086dd77fd7ff8 /3rdParty/Boost/boost/type_traits/is_class.hpp | |
parent | 1d20eabbc32274b491b4c2bedf73d19933d97bfd (diff) | |
download | swift-contrib-0efa7c32aaf21a29b42b5926cc116007056843be.zip swift-contrib-0efa7c32aaf21a29b42b5926cc116007056843be.tar.bz2 |
Moved some modules into separate git modules.
Diffstat (limited to '3rdParty/Boost/boost/type_traits/is_class.hpp')
m--------- | 3rdParty/Boost | 0 | ||||
-rw-r--r-- | 3rdParty/Boost/boost/type_traits/is_class.hpp | 140 |
2 files changed, 0 insertions, 140 deletions
diff --git a/3rdParty/Boost b/3rdParty/Boost new file mode 160000 +Subproject 3bbdbc8cf1996f23d9a366da8bac0f97be6ad79 diff --git a/3rdParty/Boost/boost/type_traits/is_class.hpp b/3rdParty/Boost/boost/type_traits/is_class.hpp deleted file mode 100644 index 1a2cd20..0000000 --- a/3rdParty/Boost/boost/type_traits/is_class.hpp +++ /dev/null @@ -1,140 +0,0 @@ -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000-2003. -// Use, modification and distribution are subject to the Boost Software License, -// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt). -// -// See http://www.boost.org/libs/type_traits for most recent version including documentation. - - -#ifndef BOOST_TT_IS_CLASS_HPP_INCLUDED -#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> - -#ifdef BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION -# 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> -#endif - -#endif // BOOST_IS_CLASS - -#ifdef __EDG_VERSION__ -# include <boost/type_traits/remove_cv.hpp> -#endif - -// should be the last #include -#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 -// abstract classes. However, enough compilers have trouble with -// it that most will use the one in -// boost/type_traits/object_traits.hpp. This implementation -// actually works with VC7.0, but other interactions seem to fail -// when we use it. - -// is_class<> metafunction due to Paul Mensonides -// (leavings@attbi.com). For more details: -// http://groups.google.com/groups?hl=en&selm=000001c1cc83%24e154d5e0%247772e50c%40c161550a&rnum=1 -#if defined(__GNUC__) && !defined(__EDG_VERSION__) - -template <class U> ::boost::type_traits::yes_type is_class_tester(void(U::*)(void)); -template <class U> ::boost::type_traits::no_type is_class_tester(...); - -template <typename T> -struct is_class_impl -{ - - BOOST_STATIC_CONSTANT(bool, value = - (::boost::type_traits::ice_and< - sizeof(is_class_tester<T>(0)) == sizeof(::boost::type_traits::yes_type), - ::boost::type_traits::ice_not< ::boost::is_union<T>::value >::value - >::value) - ); -}; - -#else - -template <typename T> -struct is_class_impl -{ - template <class U> static ::boost::type_traits::yes_type is_class_tester(void(U::*)(void)); - template <class U> static ::boost::type_traits::no_type is_class_tester(...); - - BOOST_STATIC_CONSTANT(bool, value = - (::boost::type_traits::ice_and< - sizeof(is_class_tester<T>(0)) == sizeof(::boost::type_traits::yes_type), - ::boost::type_traits::ice_not< ::boost::is_union<T>::value >::value - >::value) - ); -}; - -#endif - -#else - -template <typename T> -struct is_class_impl -{ -# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - BOOST_STATIC_CONSTANT(bool, value = - (::boost::type_traits::ice_and< - ::boost::type_traits::ice_not< ::boost::is_union<T>::value >::value, - ::boost::type_traits::ice_not< ::boost::is_scalar<T>::value >::value, - ::boost::type_traits::ice_not< ::boost::is_array<T>::value >::value, - ::boost::type_traits::ice_not< ::boost::is_reference<T>::value>::value, - ::boost::type_traits::ice_not< ::boost::is_void<T>::value >::value, - ::boost::type_traits::ice_not< ::boost::is_function<T>::value >::value - >::value)); -# else - BOOST_STATIC_CONSTANT(bool, value = - (::boost::type_traits::ice_and< - ::boost::type_traits::ice_not< ::boost::is_union<T>::value >::value, - ::boost::type_traits::ice_not< ::boost::is_scalar<T>::value >::value, - ::boost::type_traits::ice_not< ::boost::is_array<T>::value >::value, - ::boost::type_traits::ice_not< ::boost::is_reference<T>::value>::value, - ::boost::type_traits::ice_not< ::boost::is_void<T>::value >::value - >::value)); -# endif -}; - -# 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, 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> - -#endif // BOOST_TT_IS_CLASS_HPP_INCLUDED |