diff options
author | Remko Tronçon <git@el-tramo.be> | 2010-03-28 15:46:49 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2010-03-28 15:46:49 (GMT) |
commit | f53a1ef582494458301b97bf6e546be52d7ff7e8 (patch) | |
tree | 7571b5cbcbd8a8f1dd1c966c9045b6cb69f0e295 /3rdParty/Boost/src/boost/type_traits/rank.hpp | |
parent | 638345680d72ca6acaf123f2c8c1c391f696e371 (diff) | |
download | swift-contrib-f53a1ef582494458301b97bf6e546be52d7ff7e8.zip swift-contrib-f53a1ef582494458301b97bf6e546be52d7ff7e8.tar.bz2 |
Moving submodule contents back.
Diffstat (limited to '3rdParty/Boost/src/boost/type_traits/rank.hpp')
-rw-r--r-- | 3rdParty/Boost/src/boost/type_traits/rank.hpp | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/3rdParty/Boost/src/boost/type_traits/rank.hpp b/3rdParty/Boost/src/boost/type_traits/rank.hpp new file mode 100644 index 0000000..77df41e --- /dev/null +++ b/3rdParty/Boost/src/boost/type_traits/rank.hpp @@ -0,0 +1,89 @@ + +// (C) Copyright John Maddock 2005. +// 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_RANK_HPP_INCLUDED +#define BOOST_TT_RANK_HPP_INCLUDED + +// should be the last #include +#include <boost/type_traits/detail/size_t_trait_def.hpp> + +namespace boost { + +#if !defined( __CODEGEARC__ ) + +namespace detail{ + +template <class T, std::size_t N> +struct rank_imp +{ + BOOST_STATIC_CONSTANT(std::size_t, value = N); +}; +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) +template <class T, std::size_t R, std::size_t N> +struct rank_imp<T[R], N> +{ + BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value)); +}; + +template <class T, std::size_t R, std::size_t N> +struct rank_imp<T const[R], N> +{ + BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value)); +}; + +template <class T, std::size_t R, std::size_t N> +struct rank_imp<T volatile[R], N> +{ + BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value)); +}; + +template <class T, std::size_t R, std::size_t N> +struct rank_imp<T const volatile[R], N> +{ + BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value)); +}; + +#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) +template <class T, std::size_t N> +struct rank_imp<T[], N> +{ + BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value)); +}; +template <class T, std::size_t N> +struct rank_imp<T const[], N> +{ + BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value)); +}; +template <class T, std::size_t N> +struct rank_imp<T volatile[], N> +{ + BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value)); +}; +template <class T, std::size_t N> +struct rank_imp<T const volatile[], N> +{ + BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value)); +}; +#endif +#endif +} + +#endif // !defined( __CODEGEARC__ ) + +#if defined( __CODEGEARC__ ) +BOOST_TT_AUX_SIZE_T_TRAIT_DEF1(rank,T,__array_rank(T)) +#else +BOOST_TT_AUX_SIZE_T_TRAIT_DEF1(rank,T,(::boost::detail::rank_imp<T,0>::value)) +#endif + +} // namespace boost + +#include <boost/type_traits/detail/size_t_trait_undef.hpp> + +#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED |