/extlibs/Boost/include/boost/mpl/aux_/preprocessed/mwcw/equal_to.hpp
C++ Header | 94 lines | 67 code | 18 blank | 9 comment | 1 complexity | 5eb699f3f0e847e39fbdd02477394692 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 "boost/mpl/equal_to.hpp" header 10// -- DO NOT modify by hand! 11 12namespace boost { namespace mpl { 13 14template< 15 typename Tag1 16 , typename Tag2 17 > 18struct equal_to_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< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > 25 , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > 26 >::type 27{ 28}; 29 30/// for Digital Mars C++/compilers with no CTPS/TTP support 31template<> struct equal_to_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 equal_to_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 equal_to_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 equal_to_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 equal_to 68 69 : equal_to_impl< 70 typename equal_to_tag<N1>::type 71 , typename equal_to_tag<N2>::type 72 >::template apply< N1,N2 >::type 73{ 74 BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2)) 75 76}; 77 78BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to) 79 80}} 81 82namespace boost { namespace mpl { 83 84template<> 85struct equal_to_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}}