comparison DEPENDENCIES/generic/include/boost/tti/detail/dfunction.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
5 // http://www.boost.org/LICENSE_1_0.txt). 5 // http://www.boost.org/LICENSE_1_0.txt).
6 6
7 #if !defined(BOOST_TTI_DETAIL_FUNCTION_HPP) 7 #if !defined(BOOST_TTI_DETAIL_FUNCTION_HPP)
8 #define BOOST_TTI_DETAIL_FUNCTION_HPP 8 #define BOOST_TTI_DETAIL_FUNCTION_HPP
9 9
10 #include <boost/config.hpp> 10 #include <boost/mpl/or.hpp>
11 #include <boost/preprocessor/cat.hpp> 11 #include <boost/preprocessor/cat.hpp>
12 #include <boost/tti/detail/dmem_fun.hpp> 12 #include <boost/tti/detail/dmem_fun.hpp>
13 #include <boost/tti/detail/dstatic_mem_fun.hpp> 13 #include <boost/tti/detail/dstatic_mem_fun.hpp>
14 #include <boost/tti/gen/namespace_gen.hpp> 14 #include <boost/tti/gen/namespace_gen.hpp>
15 15
16 #define BOOST_TTI_DETAIL_TRAIT_HAS_FUNCTION(trait,name) \ 16 #define BOOST_TTI_DETAIL_TRAIT_HAS_FUNCTION(trait,name) \
17 BOOST_TTI_DETAIL_TRAIT_HAS_CALL_TYPES_MEMBER_FUNCTION(trait,name) \ 17 BOOST_TTI_DETAIL_TRAIT_HAS_CALL_TYPES_MEMBER_FUNCTION(trait,name) \
18 BOOST_TTI_DETAIL_TRAIT_IMPL_HAS_STATIC_MEMBER_FUNCTION(trait,name) \ 18 BOOST_TTI_DETAIL_TRAIT_IMPL_HAS_STATIC_MEMBER_FUNCTION(trait,name) \
19 template<class BOOST_TTI_DETAIL_TP_T,class BOOST_TTI_DETAIL_TP_R,class BOOST_TTI_DETAIL_TP_FS,class BOOST_TTI_DETAIL_TP_TAG> \ 19 template<class BOOST_TTI_DETAIL_TP_T,class BOOST_TTI_DETAIL_TP_R,class BOOST_TTI_DETAIL_TP_FS,class BOOST_TTI_DETAIL_TP_TAG> \
20 struct BOOST_PP_CAT(trait,_detail_hf) \ 20 struct BOOST_PP_CAT(trait,_detail_hf) : \
21 boost::mpl::or_ \
22 < \
23 BOOST_PP_CAT(trait,_detail_call_types)<BOOST_TTI_DETAIL_TP_T,BOOST_TTI_DETAIL_TP_R,BOOST_TTI_DETAIL_TP_FS,BOOST_TTI_DETAIL_TP_TAG>, \
24 BOOST_PP_CAT(trait,_detail_ihsmf) \
25 < \
26 BOOST_TTI_DETAIL_TP_T, \
27 typename BOOST_TTI_NAMESPACE::detail::tfunction_seq<BOOST_TTI_DETAIL_TP_R,BOOST_TTI_DETAIL_TP_FS,BOOST_TTI_DETAIL_TP_TAG>::type \
28 > \
29 > \
21 { \ 30 { \
22 \
23 typedef typename \
24 BOOST_PP_CAT(trait,_detail_call_types)<BOOST_TTI_DETAIL_TP_T,BOOST_TTI_DETAIL_TP_R,BOOST_TTI_DETAIL_TP_FS,BOOST_TTI_DETAIL_TP_TAG>::type hmftype; \
25 \
26 typedef typename \
27 BOOST_PP_CAT(trait,_detail_ihsmf) \
28 < \
29 BOOST_TTI_DETAIL_TP_T, \
30 typename BOOST_TTI_NAMESPACE::detail::tfunction_seq<BOOST_TTI_DETAIL_TP_R,BOOST_TTI_DETAIL_TP_FS,BOOST_TTI_DETAIL_TP_TAG>::type \
31 >::type hsmftype; \
32 \
33 BOOST_STATIC_CONSTANT \
34 ( \
35 bool, \
36 value = hmftype::value || hsmftype::value \
37 ); \
38 \
39 typedef boost::mpl::bool_<value> type; \
40 }; \ 31 }; \
41 /**/ 32 /**/
42 33
43 #endif // BOOST_TTI_DETAIL_FUNCTION_HPP 34 #endif // BOOST_TTI_DETAIL_FUNCTION_HPP