annotate DEPENDENCIES/generic/include/boost/mpl/aux_/logical_op.hpp @ 133:4acb5d8d80b6 tip

Don't fail environmental check if README.md exists (but .txt and no-suffix don't)
author Chris Cannam
date Tue, 30 Jul 2019 12:25:44 +0100
parents c530137014c0
children
rev   line source
Chris@16 1
Chris@16 2 // Copyright Aleksey Gurtovoy 2000-2004
Chris@16 3 //
Chris@16 4 // Distributed under the Boost Software License, Version 1.0.
Chris@16 5 // (See accompanying file LICENSE_1_0.txt or copy at
Chris@16 6 // http://www.boost.org/LICENSE_1_0.txt)
Chris@16 7 //
Chris@16 8 // See http://www.boost.org/libs/mpl for documentation.
Chris@16 9
Chris@101 10 // $Id$
Chris@101 11 // $Date$
Chris@101 12 // $Revision$
Chris@16 13
Chris@16 14 // NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION!
Chris@16 15
Chris@16 16 #if !defined(BOOST_MPL_PREPROCESSING_MODE)
Chris@16 17 # include <boost/mpl/bool.hpp>
Chris@16 18 # include <boost/mpl/aux_/nested_type_wknd.hpp>
Chris@16 19 # include <boost/mpl/aux_/na_spec.hpp>
Chris@16 20 # include <boost/mpl/aux_/lambda_support.hpp>
Chris@16 21 #endif
Chris@16 22
Chris@16 23 #include <boost/mpl/limits/arity.hpp>
Chris@16 24 #include <boost/mpl/aux_/preprocessor/params.hpp>
Chris@16 25 #include <boost/mpl/aux_/preprocessor/ext_params.hpp>
Chris@16 26 #include <boost/mpl/aux_/preprocessor/def_params_tail.hpp>
Chris@16 27 #include <boost/mpl/aux_/preprocessor/enum.hpp>
Chris@16 28 #include <boost/mpl/aux_/preprocessor/sub.hpp>
Chris@16 29 #include <boost/mpl/aux_/config/ctps.hpp>
Chris@16 30 #include <boost/mpl/aux_/config/workaround.hpp>
Chris@16 31
Chris@16 32 #include <boost/preprocessor/dec.hpp>
Chris@16 33 #include <boost/preprocessor/inc.hpp>
Chris@16 34 #include <boost/preprocessor/cat.hpp>
Chris@16 35
Chris@16 36 namespace boost { namespace mpl {
Chris@16 37
Chris@16 38 # define AUX778076_PARAMS(param, sub) \
Chris@16 39 BOOST_MPL_PP_PARAMS( \
Chris@16 40 BOOST_MPL_PP_SUB(BOOST_MPL_LIMIT_METAFUNCTION_ARITY, sub) \
Chris@16 41 , param \
Chris@16 42 ) \
Chris@16 43 /**/
Chris@16 44
Chris@16 45 # define AUX778076_SHIFTED_PARAMS(param, sub) \
Chris@16 46 BOOST_MPL_PP_EXT_PARAMS( \
Chris@16 47 2, BOOST_MPL_PP_SUB(BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY), sub) \
Chris@16 48 , param \
Chris@16 49 ) \
Chris@16 50 /**/
Chris@16 51
Chris@16 52 # define AUX778076_SPEC_PARAMS(param) \
Chris@16 53 BOOST_MPL_PP_ENUM( \
Chris@16 54 BOOST_PP_DEC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY) \
Chris@16 55 , param \
Chris@16 56 ) \
Chris@16 57 /**/
Chris@16 58
Chris@16 59 namespace aux {
Chris@16 60
Chris@16 61 #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
Chris@16 62
Chris@16 63 template< bool C_, AUX778076_PARAMS(typename T, 1) >
Chris@16 64 struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)
Chris@16 65 : BOOST_PP_CAT(AUX778076_OP_VALUE1,_)
Chris@16 66 {
Chris@16 67 };
Chris@16 68
Chris@16 69 template< AUX778076_PARAMS(typename T, 1) >
Chris@16 70 struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)< AUX778076_OP_VALUE2,AUX778076_PARAMS(T, 1) >
Chris@16 71 : BOOST_PP_CAT(AUX778076_OP_NAME,impl)<
Chris@16 72 BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
Chris@16 73 , AUX778076_SHIFTED_PARAMS(T, 1)
Chris@16 74 , BOOST_PP_CAT(AUX778076_OP_VALUE2,_)
Chris@16 75 >
Chris@16 76 {
Chris@16 77 };
Chris@16 78
Chris@16 79 template<>
Chris@16 80 struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)<
Chris@16 81 AUX778076_OP_VALUE2
Chris@16 82 , AUX778076_SPEC_PARAMS(BOOST_PP_CAT(AUX778076_OP_VALUE2,_))
Chris@16 83 >
Chris@16 84 : BOOST_PP_CAT(AUX778076_OP_VALUE2,_)
Chris@16 85 {
Chris@16 86 };
Chris@16 87
Chris@16 88 #else
Chris@16 89
Chris@16 90 template< bool C_ > struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)
Chris@16 91 {
Chris@16 92 template< AUX778076_PARAMS(typename T, 1) > struct result_
Chris@16 93 : BOOST_PP_CAT(AUX778076_OP_VALUE1,_)
Chris@16 94 {
Chris@16 95 };
Chris@16 96 };
Chris@16 97
Chris@16 98 template<> struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)<AUX778076_OP_VALUE2>
Chris@16 99 {
Chris@16 100 template< AUX778076_PARAMS(typename T, 1) > struct result_
Chris@16 101 : BOOST_PP_CAT(AUX778076_OP_NAME,impl)<
Chris@16 102 BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
Chris@16 103 >::template result_< AUX778076_SHIFTED_PARAMS(T,1),BOOST_PP_CAT(AUX778076_OP_VALUE2,_) >
Chris@16 104 {
Chris@16 105 };
Chris@16 106
Chris@16 107 #if BOOST_WORKAROUND(BOOST_MSVC, == 1300)
Chris@16 108 template<> struct result_<AUX778076_SPEC_PARAMS(BOOST_PP_CAT(AUX778076_OP_VALUE2,_))>
Chris@16 109 : BOOST_PP_CAT(AUX778076_OP_VALUE2,_)
Chris@16 110 {
Chris@16 111 };
Chris@16 112 };
Chris@16 113 #else
Chris@16 114 };
Chris@16 115
Chris@16 116 template<>
Chris@16 117 struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)<AUX778076_OP_VALUE2>
Chris@16 118 ::result_< AUX778076_SPEC_PARAMS(BOOST_PP_CAT(AUX778076_OP_VALUE2,_)) >
Chris@16 119 : BOOST_PP_CAT(AUX778076_OP_VALUE2,_)
Chris@16 120 {
Chris@16 121 };
Chris@16 122 #endif // BOOST_MSVC == 1300
Chris@16 123
Chris@16 124 #endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
Chris@16 125
Chris@16 126 } // namespace aux
Chris@16 127
Chris@16 128 template<
Chris@16 129 typename BOOST_MPL_AUX_NA_PARAM(T1)
Chris@16 130 , typename BOOST_MPL_AUX_NA_PARAM(T2)
Chris@16 131 BOOST_MPL_PP_DEF_PARAMS_TAIL(2, typename T, BOOST_PP_CAT(AUX778076_OP_VALUE2,_))
Chris@16 132 >
Chris@16 133 struct AUX778076_OP_NAME
Chris@16 134 #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
Chris@16 135 : aux::BOOST_PP_CAT(AUX778076_OP_NAME,impl)<
Chris@16 136 BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
Chris@16 137 , AUX778076_SHIFTED_PARAMS(T,0)
Chris@16 138 >
Chris@16 139 #else
Chris@16 140 : aux::BOOST_PP_CAT(AUX778076_OP_NAME,impl)<
Chris@16 141 BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
Chris@16 142 >::template result_< AUX778076_SHIFTED_PARAMS(T,0) >
Chris@16 143 #endif
Chris@16 144 {
Chris@16 145 BOOST_MPL_AUX_LAMBDA_SUPPORT(
Chris@16 146 BOOST_MPL_LIMIT_METAFUNCTION_ARITY
Chris@16 147 , AUX778076_OP_NAME
Chris@16 148 , (AUX778076_PARAMS(T, 0))
Chris@16 149 )
Chris@16 150 };
Chris@16 151
Chris@16 152 BOOST_MPL_AUX_NA_SPEC2(
Chris@16 153 2
Chris@16 154 , BOOST_MPL_LIMIT_METAFUNCTION_ARITY
Chris@16 155 , AUX778076_OP_NAME
Chris@16 156 )
Chris@16 157
Chris@16 158 }}
Chris@16 159
Chris@16 160 #undef AUX778076_SPEC_PARAMS
Chris@16 161 #undef AUX778076_SHIFTED_PARAMS
Chris@16 162 #undef AUX778076_PARAMS
Chris@16 163 #undef AUX778076_OP_NAME
Chris@16 164 #undef AUX778076_OP_VALUE1
Chris@16 165 #undef AUX778076_OP_VALUE2