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/iterator/detail/minimum_category.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/iterator/detail/minimum_category.hpp')
m--------- | 3rdParty/Boost | 0 | ||||
-rw-r--r-- | 3rdParty/Boost/boost/iterator/detail/minimum_category.hpp | 116 |
2 files changed, 0 insertions, 116 deletions
diff --git a/3rdParty/Boost b/3rdParty/Boost new file mode 160000 +Subproject 3bbdbc8cf1996f23d9a366da8bac0f97be6ad79 diff --git a/3rdParty/Boost/boost/iterator/detail/minimum_category.hpp b/3rdParty/Boost/boost/iterator/detail/minimum_category.hpp deleted file mode 100644 index 96501dd..0000000 --- a/3rdParty/Boost/boost/iterator/detail/minimum_category.hpp +++ /dev/null @@ -1,116 +0,0 @@ -// Copyright David Abrahams 2003. Use, modification and distribution is -// 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) -#ifndef MINIMUM_CATEGORY_DWA20031119_HPP -# define MINIMUM_CATEGORY_DWA20031119_HPP - -# include <boost/type_traits/is_convertible.hpp> -# include <boost/type_traits/is_same.hpp> - -# include <boost/mpl/aux_/lambda_support.hpp> - -namespace boost { namespace detail { -// -// Returns the minimum category type or error_type -// if T1 and T2 are unrelated. -// -// For compilers not supporting is_convertible this only -// works with the new boost return and traversal category -// types. The exact boost _types_ are required. No derived types -// will work. -// -// -template <bool GreaterEqual, bool LessEqual> -struct minimum_category_impl -# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) -{ - template <class T1, class T2> struct apply - { - typedef T2 type; - }; - typedef void type; -} -# endif -; - -template <class T1, class T2> -struct error_not_related_by_convertibility; - -template <> -struct minimum_category_impl<true,false> -{ - template <class T1, class T2> struct apply - { - typedef T2 type; - }; -}; - -template <> -struct minimum_category_impl<false,true> -{ - template <class T1, class T2> struct apply - { - typedef T1 type; - }; -}; - -template <> -struct minimum_category_impl<true,true> -{ - template <class T1, class T2> struct apply - { - BOOST_STATIC_ASSERT((is_same<T1,T2>::value)); - typedef T1 type; - }; -}; - -template <> -struct minimum_category_impl<false,false> -{ - template <class T1, class T2> struct apply - : error_not_related_by_convertibility<T1,T2> - { - }; -}; - -template <class T1 = mpl::_1, class T2 = mpl::_2> -struct minimum_category -{ - typedef minimum_category_impl< -# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) // ETI workaround - is_same<T2,int>::value || -# endif - ::boost::is_convertible<T1,T2>::value - , ::boost::is_convertible<T2,T1>::value -# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) // ETI workaround - || is_same<T1,int>::value -# endif - > outer; - - typedef typename outer::template apply<T1,T2> inner; - typedef typename inner::type type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT(2,minimum_category,(T1,T2)) -}; - -template <> -struct minimum_category<mpl::_1,mpl::_2> -{ - template <class T1, class T2> - struct apply : minimum_category<T1,T2> - {}; - - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2,minimum_category,(mpl::_1,mpl::_2)) -}; - -# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) // ETI workaround -template <> -struct minimum_category<int,int> -{ - typedef int type; -}; -# endif - -}} // namespace boost::detail - -#endif // MINIMUM_CATEGORY_DWA20031119_HPP |