1.1 --- a/epoc32/include/stdapis/boost/mpl/aux_/preprocessed/plain/less.hpp Wed Mar 31 12:27:01 2010 +0100
1.2 +++ b/epoc32/include/stdapis/boost/mpl/aux_/preprocessed/plain/less.hpp Wed Mar 31 12:33:34 2010 +0100
1.3 @@ -1,46 +1,92 @@
1.4 -# /* Copyright (C) 2001
1.5 -# * Housemarque Oy
1.6 -# * http://www.housemarque.com
1.7 -# *
1.8 -# * Distributed under the Boost Software License, Version 1.0. (See
1.9 -# * accompanying file LICENSE_1_0.txt or copy at
1.10 -# * http://www.boost.org/LICENSE_1_0.txt)
1.11 -# */
1.12 -#
1.13 -# /* Revised by Paul Mensonides (2002) */
1.14 -#
1.15 -# /* See http://www.boost.org for most recent version. */
1.16 -#
1.17 -# ifndef BOOST_PREPROCESSOR_COMPARISON_LESS_HPP
1.18 -# define BOOST_PREPROCESSOR_COMPARISON_LESS_HPP
1.19 -#
1.20 -# include <boost/preprocessor/comparison/less_equal.hpp>
1.21 -# include <boost/preprocessor/comparison/not_equal.hpp>
1.22 -# include <boost/preprocessor/config/config.hpp>
1.23 -# include <boost/preprocessor/control/iif.hpp>
1.24 -# include <boost/preprocessor/logical/bitand.hpp>
1.25 -# include <boost/preprocessor/tuple/eat.hpp>
1.26 -#
1.27 -# /* BOOST_PP_LESS */
1.28 -#
1.29 -# if BOOST_PP_CONFIG_FLAGS() & (BOOST_PP_CONFIG_MWCC() | BOOST_PP_CONFIG_DMC())
1.30 -# define BOOST_PP_LESS(x, y) BOOST_PP_BITAND(BOOST_PP_NOT_EQUAL(x, y), BOOST_PP_LESS_EQUAL(x, y))
1.31 -# elif ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
1.32 -# define BOOST_PP_LESS(x, y) BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(x, y), BOOST_PP_LESS_EQUAL, 0 BOOST_PP_TUPLE_EAT_2)(x, y)
1.33 -# else
1.34 -# define BOOST_PP_LESS(x, y) BOOST_PP_LESS_I(x, y)
1.35 -# define BOOST_PP_LESS_I(x, y) BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(x, y), BOOST_PP_LESS_EQUAL, 0 BOOST_PP_TUPLE_EAT_2)(x, y)
1.36 -# endif
1.37 -#
1.38 -# /* BOOST_PP_LESS_D */
1.39 -#
1.40 -# if BOOST_PP_CONFIG_FLAGS() & (BOOST_PP_CONFIG_MWCC() | BOOST_PP_CONFIG_DMC())
1.41 -# define BOOST_PP_LESS_D(d, x, y) BOOST_PP_BITAND(BOOST_PP_NOT_EQUAL(x, y), BOOST_PP_LESS_EQUAL_D(d, x, y))
1.42 -# elif ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
1.43 -# define BOOST_PP_LESS_D(d, x, y) BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(x, y), BOOST_PP_LESS_EQUAL_D, 0 BOOST_PP_TUPLE_EAT_3)(d, x, y)
1.44 -# else
1.45 -# define BOOST_PP_LESS_D(d, x, y) BOOST_PP_LESS_D_I(d, x, y)
1.46 -# define BOOST_PP_LESS_D_I(d, x, y) BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(x, y), BOOST_PP_LESS_EQUAL_D, 0 BOOST_PP_TUPLE_EAT_3)(d, x, y)
1.47 -# endif
1.48 -#
1.49 -# endif
1.50 +
1.51 +// Copyright Aleksey Gurtovoy 2000-2004
1.52 +//
1.53 +// Distributed under the Boost Software License, Version 1.0.
1.54 +// (See accompanying file LICENSE_1_0.txt or copy at
1.55 +// http://www.boost.org/LICENSE_1_0.txt)
1.56 +//
1.57 +
1.58 +// Preprocessed version of "boost/mpl/less.hpp" header
1.59 +// -- DO NOT modify by hand!
1.60 +
1.61 +namespace boost { namespace mpl {
1.62 +
1.63 +template<
1.64 + typename Tag1
1.65 + , typename Tag2
1.66 + >
1.67 +struct less_impl
1.68 + : if_c<
1.69 + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
1.70 + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
1.71 + )
1.72 +
1.73 + , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 >
1.74 + , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 >
1.75 + >::type
1.76 +{
1.77 +};
1.78 +
1.79 +/// for Digital Mars C++/compilers with no CTPS/TTP support
1.80 +template<> struct less_impl< na,na >
1.81 +{
1.82 + template< typename U1, typename U2 > struct apply
1.83 + {
1.84 + typedef apply type;
1.85 + BOOST_STATIC_CONSTANT(int, value = 0);
1.86 + };
1.87 +};
1.88 +
1.89 +template< typename Tag > struct less_impl< na,Tag >
1.90 +{
1.91 + template< typename U1, typename U2 > struct apply
1.92 + {
1.93 + typedef apply type;
1.94 + BOOST_STATIC_CONSTANT(int, value = 0);
1.95 + };
1.96 +};
1.97 +
1.98 +template< typename Tag > struct less_impl< Tag,na >
1.99 +{
1.100 + template< typename U1, typename U2 > struct apply
1.101 + {
1.102 + typedef apply type;
1.103 + BOOST_STATIC_CONSTANT(int, value = 0);
1.104 + };
1.105 +};
1.106 +
1.107 +template< typename T > struct less_tag
1.108 +{
1.109 + typedef typename T::tag type;
1.110 +};
1.111 +
1.112 +template<
1.113 + typename BOOST_MPL_AUX_NA_PARAM(N1)
1.114 + , typename BOOST_MPL_AUX_NA_PARAM(N2)
1.115 + >
1.116 +struct less
1.117 +
1.118 + : less_impl<
1.119 + typename less_tag<N1>::type
1.120 + , typename less_tag<N2>::type
1.121 + >::template apply< N1,N2 >::type
1.122 +{
1.123 +};
1.124 +
1.125 +BOOST_MPL_AUX_NA_SPEC2(2, 2, less)
1.126 +
1.127 +}}
1.128 +
1.129 +namespace boost { namespace mpl {
1.130 +
1.131 +template<>
1.132 +struct less_impl< integral_c_tag,integral_c_tag >
1.133 +{
1.134 + template< typename N1, typename N2 > struct apply
1.135 +
1.136 + : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) >
1.137 + {
1.138 + };
1.139 +};
1.140 +
1.141 +}}