Mercurial > hg > vamp-build-and-test
comparison DEPENDENCIES/generic/include/boost/tti/detail/dtemplate_params.hpp @ 101:c530137014c0
Update Boost headers (1.58.0)
author | Chris Cannam |
---|---|
date | Mon, 07 Sep 2015 11:12:49 +0100 |
parents | 2665513ce2d3 |
children |
comparison
equal
deleted
inserted
replaced
100:793467b5e61c | 101:c530137014c0 |
---|---|
7 #if !defined(BOOST_TTI_DETAIL_TEMPLATE_PARAMS_HPP) | 7 #if !defined(BOOST_TTI_DETAIL_TEMPLATE_PARAMS_HPP) |
8 #define BOOST_TTI_DETAIL_TEMPLATE_PARAMS_HPP | 8 #define BOOST_TTI_DETAIL_TEMPLATE_PARAMS_HPP |
9 | 9 |
10 #include <boost/config.hpp> | 10 #include <boost/config.hpp> |
11 #include <boost/mpl/bool.hpp> | 11 #include <boost/mpl/bool.hpp> |
12 #include <boost/mpl/eval_if.hpp> | |
12 #include <boost/mpl/has_xxx.hpp> | 13 #include <boost/mpl/has_xxx.hpp> |
13 #include <boost/preprocessor/arithmetic/add.hpp> | 14 #include <boost/preprocessor/arithmetic/add.hpp> |
14 #include <boost/preprocessor/arithmetic/sub.hpp> | 15 #include <boost/preprocessor/arithmetic/sub.hpp> |
15 #include <boost/preprocessor/array/elem.hpp> | 16 #include <boost/preprocessor/array/elem.hpp> |
16 #include <boost/preprocessor/cat.hpp> | 17 #include <boost/preprocessor/cat.hpp> |
17 #include <boost/preprocessor/punctuation/comma_if.hpp> | 18 #include <boost/preprocessor/punctuation/comma_if.hpp> |
18 #include <boost/preprocessor/repetition/repeat.hpp> | 19 #include <boost/preprocessor/repetition/repeat.hpp> |
19 #include <boost/preprocessor/repetition/enum.hpp> | 20 #include <boost/preprocessor/repetition/enum.hpp> |
20 #include <boost/preprocessor/array/enum.hpp> | 21 #include <boost/preprocessor/array/enum.hpp> |
21 #include <boost/preprocessor/array/size.hpp> | 22 #include <boost/preprocessor/array/size.hpp> |
23 #include <boost/type_traits/is_class.hpp> | |
22 | 24 |
23 #if !defined(BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE) | 25 #if !defined(BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE) |
24 | 26 |
25 #define BOOST_TTI_DETAIL_TEMPLATE_PARAMETERS(z,n,args) \ | 27 #define BOOST_TTI_DETAIL_TEMPLATE_PARAMETERS(z,n,args) \ |
26 BOOST_PP_ARRAY_ELEM(BOOST_PP_ADD(4,n),args) \ | 28 BOOST_PP_ARRAY_ELEM(BOOST_PP_ADD(4,n),args) \ |
31 < \ | 33 < \ |
32 typename BOOST_TTI_DETAIL_TP_T, \ | 34 typename BOOST_TTI_DETAIL_TP_T, \ |
33 typename BOOST_TTI_DETAIL_TP_FALLBACK_ \ | 35 typename BOOST_TTI_DETAIL_TP_FALLBACK_ \ |
34 = boost::mpl::bool_< BOOST_PP_ARRAY_ELEM(3, args) > \ | 36 = boost::mpl::bool_< BOOST_PP_ARRAY_ELEM(3, args) > \ |
35 > \ | 37 > \ |
36 class BOOST_PP_ARRAY_ELEM(0, args) \ | 38 struct BOOST_PP_ARRAY_ELEM(0, args) \ |
37 { \ | 39 { \ |
40 private: \ | |
38 introspect_macro(args) \ | 41 introspect_macro(args) \ |
39 public: \ | 42 public: \ |
40 static const bool value \ | 43 static const bool value \ |
41 = BOOST_MPL_HAS_MEMBER_INTROSPECTION_NAME(args)< BOOST_TTI_DETAIL_TP_T >::value; \ | 44 = BOOST_MPL_HAS_MEMBER_INTROSPECTION_NAME(args)< BOOST_TTI_DETAIL_TP_T >::value; \ |
42 typedef typename BOOST_MPL_HAS_MEMBER_INTROSPECTION_NAME(args) \ | 45 typedef typename BOOST_MPL_HAS_MEMBER_INTROSPECTION_NAME(args) \ |
184 BOOST_TTI_DETAIL_SAME(trait,name) \ | 187 BOOST_TTI_DETAIL_SAME(trait,name) \ |
185 /**/ | 188 /**/ |
186 | 189 |
187 #endif // !BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE | 190 #endif // !BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE |
188 | 191 |
189 #define BOOST_TTI_DETAIL_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(trait,name,tpArray) \ | 192 #define BOOST_TTI_DETAIL_TRAIT_HAS_TEMPLATE_CHECK_PARAMS_OP(trait,name,tpArray) \ |
190 BOOST_TTI_DETAIL_TRAIT_CALL_HAS_TEMPLATE_CHECK_PARAMS(BOOST_PP_CAT(trait,_detail),name,tpArray) \ | 193 BOOST_TTI_DETAIL_TRAIT_CALL_HAS_TEMPLATE_CHECK_PARAMS(BOOST_PP_CAT(trait,_detail),name,tpArray) \ |
191 template<class BOOST_TTI_DETAIL_TP_T> \ | 194 template<class BOOST_TTI_DETAIL_TP_T> \ |
192 struct trait : \ | 195 struct BOOST_PP_CAT(trait,_detail_cp_op) : \ |
193 BOOST_PP_CAT(trait,_detail)<BOOST_TTI_DETAIL_TP_T> \ | 196 BOOST_PP_CAT(trait,_detail)<BOOST_TTI_DETAIL_TP_T> \ |
194 { \ | 197 { \ |
198 }; \ | |
199 /**/ | |
200 | |
201 #define BOOST_TTI_DETAIL_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(trait,name,tpArray) \ | |
202 BOOST_TTI_DETAIL_TRAIT_HAS_TEMPLATE_CHECK_PARAMS_OP(trait,name,tpArray) \ | |
203 template<class BOOST_TTI_DETAIL_TP_T> \ | |
204 struct trait \ | |
205 { \ | |
206 typedef typename \ | |
207 boost::mpl::eval_if \ | |
208 < \ | |
209 boost::is_class<BOOST_TTI_DETAIL_TP_T>, \ | |
210 BOOST_PP_CAT(trait,_detail_cp_op)<BOOST_TTI_DETAIL_TP_T>, \ | |
211 boost::mpl::false_ \ | |
212 >::type type; \ | |
213 BOOST_STATIC_CONSTANT(bool,value=type::value); \ | |
195 }; \ | 214 }; \ |
196 /**/ | 215 /**/ |
197 | 216 |
198 #if !defined(BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE) | 217 #if !defined(BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE) |
199 #if !BOOST_WORKAROUND(BOOST_MSVC, <= 1400) | 218 #if !BOOST_WORKAROUND(BOOST_MSVC, <= 1400) |