Home | History | Annotate | Download | only in gcc
      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     BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
     75 
     76 };
     77 
     78 BOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
     79 
     80 }}
     81 
     82 namespace boost { namespace mpl {
     83 
     84 template<>
     85 struct greater_impl< integral_c_tag,integral_c_tag >
     86 {
     87     template< typename N1, typename N2 > struct apply
     88 
     89         : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     90     {
     91     };
     92 };
     93 
     94 }}
     95