/extlibs/Boost/include/boost/mpl/aux_/preprocessed/bcc/greater_equal.hpp
C++ Header | 94 lines | 67 code | 18 blank | 9 comment | 0 complexity | 43397aee860a5bb43251c15cae672d58 MD5 | raw file
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 the main "greater_equal.hpp" header 10// -- DO NOT modify by hand! 11 12namespace boost { namespace mpl { 13 14template< 15 typename Tag1 16 , typename Tag2 17 > 18struct greater_equal_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_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > 25 , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > 26 >::type 27{ 28}; 29 30/// for Digital Mars C++/compilers with no CTPS/TTP support 31template<> struct greater_equal_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 40template< typename Tag > struct greater_equal_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 49template< typename Tag > struct greater_equal_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 58template< typename T > struct greater_equal_tag 59{ 60 typedef typename T::tag type; 61}; 62 63template< 64 typename BOOST_MPL_AUX_NA_PARAM(N1) 65 , typename BOOST_MPL_AUX_NA_PARAM(N2) 66 > 67struct greater_equal 68 69 : greater_equal_impl< 70 typename greater_equal_tag<N1>::type 71 , typename greater_equal_tag<N2>::type 72 >::template apply< N1,N2 >::type 73{ 74 BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2)) 75 76}; 77 78BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal) 79 80}} 81 82namespace boost { namespace mpl { 83 84template<> 85struct greater_equal_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}}