1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/epoc32/include/stdapis/boost/mpl/aux_/arithmetic_op.hpp Tue Mar 16 16:12:26 2010 +0000
1.3 @@ -0,0 +1,92 @@
1.4 +
1.5 +// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
1.6 +
1.7 +// Copyright Aleksey Gurtovoy 2000-2004
1.8 +//
1.9 +// Distributed under the Boost Software License, Version 1.0.
1.10 +// (See accompanying file LICENSE_1_0.txt or copy at
1.11 +// http://www.boost.org/LICENSE_1_0.txt)
1.12 +//
1.13 +// See http://www.boost.org/libs/mpl for documentation.
1.14 +
1.15 +// $Source: /cvsroot/boost/boost/boost/mpl/aux_/arithmetic_op.hpp,v $
1.16 +// $Date: 2004/09/07 08:51:32 $
1.17 +// $Revision: 1.4 $
1.18 +
1.19 +#if !defined(BOOST_MPL_PREPROCESSING_MODE)
1.20 +# include <boost/mpl/integral_c.hpp>
1.21 +# include <boost/mpl/aux_/largest_int.hpp>
1.22 +# include <boost/mpl/aux_/value_wknd.hpp>
1.23 +#endif
1.24 +
1.25 +#if !defined(AUX778076_OP_PREFIX)
1.26 +# define AUX778076_OP_PREFIX AUX778076_OP_NAME
1.27 +#endif
1.28 +
1.29 +#include <boost/mpl/aux_/numeric_op.hpp>
1.30 +#include <boost/mpl/aux_/config/static_constant.hpp>
1.31 +#include <boost/mpl/aux_/config/use_preprocessed.hpp>
1.32 +
1.33 +#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
1.34 + && !defined(BOOST_MPL_PREPROCESSING_MODE)
1.35 +
1.36 +# define BOOST_MPL_PREPROCESSED_HEADER AUX778076_OP_PREFIX.hpp
1.37 +# include <boost/mpl/aux_/include_preprocessed.hpp>
1.38 +
1.39 +#else
1.40 +
1.41 +# include <boost/mpl/aux_/config/workaround.hpp>
1.42 +# include <boost/preprocessor/cat.hpp>
1.43 +
1.44 +
1.45 +namespace boost { namespace mpl {
1.46 +
1.47 +#if defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
1.48 +namespace aux {
1.49 +template< typename T, T n1, T n2 >
1.50 +struct BOOST_PP_CAT(AUX778076_OP_PREFIX,_wknd)
1.51 +{
1.52 + BOOST_STATIC_CONSTANT(T, value = (n1 AUX778076_OP_TOKEN n2));
1.53 + typedef integral_c<T,value> type;
1.54 +};
1.55 +}
1.56 +#endif
1.57 +
1.58 +template<>
1.59 +struct AUX778076_OP_IMPL_NAME<integral_c_tag,integral_c_tag>
1.60 +{
1.61 + template< typename N1, typename N2 > struct apply
1.62 +#if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
1.63 + : integral_c<
1.64 + typename aux::largest_int<
1.65 + typename N1::value_type
1.66 + , typename N2::value_type
1.67 + >::type
1.68 + , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
1.69 + AUX778076_OP_TOKEN BOOST_MPL_AUX_VALUE_WKND(N2)::value
1.70 + )
1.71 + >
1.72 +#else
1.73 + : aux::BOOST_PP_CAT(AUX778076_OP_PREFIX,_wknd)<
1.74 + typename aux::largest_int<
1.75 + typename N1::value_type
1.76 + , typename N2::value_type
1.77 + >::type
1.78 + , N1::value
1.79 + , N2::value
1.80 + >::type
1.81 +#endif
1.82 + {
1.83 + };
1.84 +};
1.85 +
1.86 +}}
1.87 +
1.88 +#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
1.89 +
1.90 +#undef AUX778076_OP_TAG_NAME
1.91 +#undef AUX778076_OP_IMPL_NAME
1.92 +#undef AUX778076_OP_ARITY
1.93 +#undef AUX778076_OP_PREFIX
1.94 +#undef AUX778076_OP_NAME
1.95 +#undef AUX778076_OP_TOKEN