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.
     1 
     2 // Copyright Aleksey Gurtovoy 2000-2004
     3 //
     4 // Distributed under the Boost Software License, Version 1.0. 
     5 // (See accompanying file LICENSE_1_0.txt or copy at 
     6 // http://www.boost.org/LICENSE_1_0.txt)
     7 //
     8 
     9 // Preprocessed version of "boost/mpl/greater.hpp" header
    10 // -- DO NOT modify by hand!
    11 
    12 namespace boost { namespace mpl {
    13 
    14 template<
    15       typename Tag1
    16     , typename Tag2
    17     >
    18 struct greater_impl
    19     : if_c<
    20           ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
    21               > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
    22             )
    23 
    24         , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 >
    25         , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 >
    26         >::type
    27 {
    28 };
    29 
    30 /// for Digital Mars C++/compilers with no CTPS/TTP support
    31 template<> struct greater_impl< na,na >
    32 {
    33     template< typename U1, typename U2 > struct apply
    34     {
    35         typedef apply type;
    36         BOOST_STATIC_CONSTANT(int, value  = 0);
    37     };
    38 };
    39 
    40 template< typename Tag > struct greater_impl< na,Tag >
    41 {
    42     template< typename U1, typename U2 > struct apply
    43     {
    44         typedef apply type;
    45         BOOST_STATIC_CONSTANT(int, value  = 0);
    46     };
    47 };
    48 
    49 template< typename Tag > struct greater_impl< Tag,na >
    50 {
    51     template< typename U1, typename U2 > struct apply
    52     {
    53         typedef apply type;
    54         BOOST_STATIC_CONSTANT(int, value  = 0);
    55     };
    56 };
    57 
    58 template< typename T > struct greater_tag
    59 {
    60     typedef typename T::tag type;
    61 };
    62 
    63 template<
    64       typename BOOST_MPL_AUX_NA_PARAM(N1)
    65     , typename BOOST_MPL_AUX_NA_PARAM(N2)
    66     >
    67 struct greater
    68 
    69     : greater_impl<
    70           typename greater_tag<N1>::type
    71         , typename greater_tag<N2>::type
    72         >::template apply< N1,N2 >::type
    73 {
    74 };
    75 
    76 BOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
    77 
    78 }}
    79 
    80 namespace boost { namespace mpl {
    81 
    82 template<>
    83 struct greater_impl< integral_c_tag,integral_c_tag >
    84 {
    85     template< typename N1, typename N2 > struct apply
    86 
    87         : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
    88     {
    89     };
    90 };
    91 
    92 }}