epoc32/include/stdapis/boost/mpl/aux_/preprocessed/plain/greater.hpp
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
parent 3 e1b950c65cb4
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
williamr@4
     1
williamr@4
     2
// Copyright Aleksey Gurtovoy 2000-2004
williamr@4
     3
//
williamr@4
     4
// Distributed under the Boost Software License, Version 1.0. 
williamr@4
     5
// (See accompanying file LICENSE_1_0.txt or copy at 
williamr@4
     6
// http://www.boost.org/LICENSE_1_0.txt)
williamr@4
     7
//
williamr@4
     8
williamr@4
     9
// Preprocessed version of "boost/mpl/greater.hpp" header
williamr@4
    10
// -- DO NOT modify by hand!
williamr@4
    11
williamr@4
    12
namespace boost { namespace mpl {
williamr@4
    13
williamr@4
    14
template<
williamr@4
    15
      typename Tag1
williamr@4
    16
    , typename Tag2
williamr@4
    17
    >
williamr@4
    18
struct greater_impl
williamr@4
    19
    : if_c<
williamr@4
    20
          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
williamr@4
    21
              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
williamr@4
    22
            )
williamr@4
    23
williamr@4
    24
        , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 >
williamr@4
    25
        , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 >
williamr@4
    26
        >::type
williamr@4
    27
{
williamr@4
    28
};
williamr@4
    29
williamr@4
    30
/// for Digital Mars C++/compilers with no CTPS/TTP support
williamr@4
    31
template<> struct greater_impl< na,na >
williamr@4
    32
{
williamr@4
    33
    template< typename U1, typename U2 > struct apply
williamr@4
    34
    {
williamr@4
    35
        typedef apply type;
williamr@4
    36
        BOOST_STATIC_CONSTANT(int, value  = 0);
williamr@4
    37
    };
williamr@4
    38
};
williamr@4
    39
williamr@4
    40
template< typename Tag > struct greater_impl< na,Tag >
williamr@4
    41
{
williamr@4
    42
    template< typename U1, typename U2 > struct apply
williamr@4
    43
    {
williamr@4
    44
        typedef apply type;
williamr@4
    45
        BOOST_STATIC_CONSTANT(int, value  = 0);
williamr@4
    46
    };
williamr@4
    47
};
williamr@4
    48
williamr@4
    49
template< typename Tag > struct greater_impl< Tag,na >
williamr@4
    50
{
williamr@4
    51
    template< typename U1, typename U2 > struct apply
williamr@4
    52
    {
williamr@4
    53
        typedef apply type;
williamr@4
    54
        BOOST_STATIC_CONSTANT(int, value  = 0);
williamr@4
    55
    };
williamr@4
    56
};
williamr@4
    57
williamr@4
    58
template< typename T > struct greater_tag
williamr@4
    59
{
williamr@4
    60
    typedef typename T::tag type;
williamr@4
    61
};
williamr@4
    62
williamr@4
    63
template<
williamr@4
    64
      typename BOOST_MPL_AUX_NA_PARAM(N1)
williamr@4
    65
    , typename BOOST_MPL_AUX_NA_PARAM(N2)
williamr@4
    66
    >
williamr@4
    67
struct greater
williamr@4
    68
williamr@4
    69
    : greater_impl<
williamr@4
    70
          typename greater_tag<N1>::type
williamr@4
    71
        , typename greater_tag<N2>::type
williamr@4
    72
        >::template apply< N1,N2 >::type
williamr@4
    73
{
williamr@4
    74
};
williamr@4
    75
williamr@4
    76
BOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
williamr@4
    77
williamr@4
    78
}}
williamr@4
    79
williamr@4
    80
namespace boost { namespace mpl {
williamr@4
    81
williamr@4
    82
template<>
williamr@4
    83
struct greater_impl< integral_c_tag,integral_c_tag >
williamr@4
    84
{
williamr@4
    85
    template< typename N1, typename N2 > struct apply
williamr@4
    86
williamr@4
    87
        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
williamr@4
    88
    {
williamr@4
    89
    };
williamr@4
    90
};
williamr@4
    91
williamr@4
    92
}}