Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:41:37

0001 
0002 // NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
0003 
0004 // Copyright Aleksey Gurtovoy 2000-2004
0005 //
0006 // Distributed under the Boost Software License, Version 1.0. 
0007 // (See accompanying file LICENSE_1_0.txt or copy at 
0008 // http://www.boost.org/LICENSE_1_0.txt)
0009 //
0010 // See http://www.boost.org/libs/mpl for documentation.
0011 
0012 // $Id$
0013 // $Date$
0014 // $Revision$
0015 
0016 #if !defined(BOOST_MPL_PREPROCESSING_MODE)
0017 #   include <boost/mpl/bool.hpp>
0018 #   include <boost/mpl/aux_/value_wknd.hpp>
0019 #endif
0020 
0021 #if !defined(AUX778076_OP_PREFIX)
0022 #   define AUX778076_OP_PREFIX AUX778076_OP_NAME
0023 #endif
0024 
0025 #define AUX778076_OP_ARITY 2
0026 
0027 #include <boost/mpl/aux_/numeric_op.hpp>
0028 #include <boost/mpl/aux_/config/static_constant.hpp>
0029 #include <boost/mpl/aux_/config/use_preprocessed.hpp>
0030 
0031 #if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
0032     && !defined(BOOST_MPL_PREPROCESSING_MODE)
0033 
0034 #   define BOOST_MPL_PREPROCESSED_HEADER AUX778076_OP_PREFIX.hpp
0035 #   include <boost/mpl/aux_/include_preprocessed.hpp>
0036 
0037 #else
0038 
0039 #   include <boost/mpl/aux_/config/integral.hpp>
0040 #   include <boost/preprocessor/cat.hpp>
0041 
0042 namespace boost { namespace mpl {
0043 
0044 // MSVC workaround: implement less in terms of greater
0045 #if 0 AUX778076_OP_TOKEN 1 && !(1 AUX778076_OP_TOKEN 0) && !(0 AUX778076_OP_TOKEN 0)
0046 #   define AUX778076_OP(N1, N2) \
0047     ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) \
0048 /**/
0049 #else
0050 #   define AUX778076_OP(N1, N2) \
0051     ( BOOST_MPL_AUX_VALUE_WKND(N1)::value \
0052           AUX778076_OP_TOKEN BOOST_MPL_AUX_VALUE_WKND(N2)::value \
0053         ) \
0054 /**/
0055 #endif
0056 
0057 template<>
0058 struct AUX778076_OP_IMPL_NAME<integral_c_tag,integral_c_tag>
0059 {
0060     template< typename N1, typename N2 > struct apply
0061 #if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
0062         : bool_< AUX778076_OP(N1, N2) >
0063     {
0064 #else
0065     {
0066         BOOST_STATIC_CONSTANT(bool, value = AUX778076_OP(N1, N2));
0067         typedef bool_<value> type;
0068 #endif
0069     };
0070 };
0071 
0072 #undef AUX778076_OP
0073 
0074 }}
0075 
0076 #endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
0077 
0078 #undef AUX778076_OP_TAG_NAME
0079 #undef AUX778076_OP_IMPL_NAME
0080 #undef AUX778076_OP_ARITY
0081 #undef AUX778076_OP_PREFIX
0082 #undef AUX778076_OP_NAME
0083 #undef AUX778076_OP_TOKEN