epoc32/include/stdapis/boost/mpl/aux_/comparison_op.hpp
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:27:01 +0100
branchSymbian2
changeset 3 e1b950c65cb4
permissions -rw-r--r--
Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
     1 
     2 // NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
     3 
     4 // Copyright Aleksey Gurtovoy 2000-2004
     5 //
     6 // Distributed under the Boost Software License, Version 1.0. 
     7 // (See accompanying file LICENSE_1_0.txt or copy at 
     8 // http://www.boost.org/LICENSE_1_0.txt)
     9 //
    10 // See http://www.boost.org/libs/mpl for documentation.
    11 
    12 // $Source: /cvsroot/boost/boost/boost/mpl/aux_/comparison_op.hpp,v $
    13 // $Date: 2004/09/07 08:51:32 $
    14 // $Revision: 1.4 $
    15 
    16 #if !defined(BOOST_MPL_PREPROCESSING_MODE)
    17 #   include <boost/mpl/bool.hpp>
    18 #   include <boost/mpl/aux_/value_wknd.hpp>
    19 #endif
    20 
    21 #if !defined(AUX778076_OP_PREFIX)
    22 #   define AUX778076_OP_PREFIX AUX778076_OP_NAME
    23 #endif
    24 
    25 #define AUX778076_OP_ARITY 2
    26 
    27 #include <boost/mpl/aux_/numeric_op.hpp>
    28 #include <boost/mpl/aux_/config/static_constant.hpp>
    29 #include <boost/mpl/aux_/config/use_preprocessed.hpp>
    30 
    31 #if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
    32     && !defined(BOOST_MPL_PREPROCESSING_MODE)
    33 
    34 #   define BOOST_MPL_PREPROCESSED_HEADER AUX778076_OP_PREFIX.hpp
    35 #   include <boost/mpl/aux_/include_preprocessed.hpp>
    36 
    37 #else
    38 
    39 #   include <boost/mpl/aux_/config/integral.hpp>
    40 #   include <boost/preprocessor/cat.hpp>
    41 
    42 namespace boost { namespace mpl {
    43 
    44 // MSVC workaround: implement less in terms of greater
    45 #if 0 AUX778076_OP_TOKEN 1 && !(1 AUX778076_OP_TOKEN 0) && !(0 AUX778076_OP_TOKEN 0)
    46 #   define AUX778076_OP(N1, N2) \
    47     ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) \
    48 /**/
    49 #else
    50 #   define AUX778076_OP(N1, N2) \
    51     ( BOOST_MPL_AUX_VALUE_WKND(N1)::value \
    52           AUX778076_OP_TOKEN BOOST_MPL_AUX_VALUE_WKND(N2)::value \
    53         ) \
    54 /**/
    55 #endif
    56 
    57 template<>
    58 struct AUX778076_OP_IMPL_NAME<integral_c_tag,integral_c_tag>
    59 {
    60     template< typename N1, typename N2 > struct apply
    61 #if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
    62         : bool_< AUX778076_OP(N1, N2) >
    63     {
    64 #else
    65     {
    66         BOOST_STATIC_CONSTANT(bool, value = AUX778076_OP(N1, N2));
    67         typedef bool_<value> type;
    68 #endif
    69     };
    70 };
    71 
    72 #undef AUX778076_OP
    73 
    74 }}
    75 
    76 #endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
    77 
    78 #undef AUX778076_OP_TAG_NAME
    79 #undef AUX778076_OP_IMPL_NAME
    80 #undef AUX778076_OP_ARITY
    81 #undef AUX778076_OP_PREFIX
    82 #undef AUX778076_OP_NAME
    83 #undef AUX778076_OP_TOKEN