File indexing completed on 2025-01-18 09:41:21
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 namespace boost { namespace mpl {
0013
0014 template<
0015 typename Tag1
0016 , typename Tag2
0017
0018 , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
0019 , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
0020 >
0021 struct greater_impl
0022 : if_c<
0023 ( tag1_ > tag2_ )
0024 , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 >
0025 , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 >
0026 >::type
0027 {
0028 };
0029
0030
0031 template<> struct greater_impl< na,na >
0032 {
0033 template< typename U1, typename U2 > struct apply
0034 {
0035 typedef apply type;
0036 BOOST_STATIC_CONSTANT(int, value = 0);
0037 };
0038 };
0039
0040 template<> struct greater_impl< na,integral_c_tag >
0041 {
0042 template< typename U1, typename U2 > struct apply
0043 {
0044 typedef apply type;
0045 BOOST_STATIC_CONSTANT(int, value = 0);
0046 };
0047 };
0048
0049 template<> struct greater_impl< integral_c_tag,na >
0050 {
0051 template< typename U1, typename U2 > struct apply
0052 {
0053 typedef apply type;
0054 BOOST_STATIC_CONSTANT(int, value = 0);
0055 };
0056 };
0057
0058 template< typename T > struct greater_tag
0059 : tag< T,na >
0060 {
0061 };
0062
0063 template<
0064 typename BOOST_MPL_AUX_NA_PARAM(N1)
0065 , typename BOOST_MPL_AUX_NA_PARAM(N2)
0066 >
0067 struct greater
0068 : aux::msvc_eti_base< typename apply_wrap2<
0069 greater_impl<
0070 typename greater_tag<N1>::type
0071 , typename greater_tag<N2>::type
0072 >
0073 , N1
0074 , N2
0075 >::type >::type
0076
0077 {
0078 BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
0079
0080 };
0081
0082 BOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
0083
0084 }}
0085
0086 namespace boost { namespace mpl {
0087
0088 template<>
0089 struct greater_impl< integral_c_tag,integral_c_tag >
0090 {
0091 template< typename N1, typename N2 > struct apply
0092
0093 {
0094 BOOST_STATIC_CONSTANT(bool, value =
0095 ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >
0096 BOOST_MPL_AUX_VALUE_WKND(N2)::value )
0097 );
0098 typedef bool_<value> type;
0099 };
0100 };
0101
0102 }}