24 #ifndef SKA_CHEETAH_RFIM_POLICYINFO_H 25 #define SKA_CHEETAH_RFIM_POLICYINFO_H 26 #include <boost/function_types/parameter_types.hpp> 27 #include <boost/function_types/function_type.hpp> 28 #include <boost/function_types/result_type.hpp> 29 #include <type_traits> 41 template<
typename PolicyType>
47 typedef decltype(&PolicyType::adapter) AdapterFuncType;
49 typedef typename boost::function_types::result_type<AdapterFuncType>::type AdapterType;
52 typedef decltype(&AdapterType::data) FuncType;
55 typedef typename boost::function_types::result_type<FuncType>::type AdapterDataReturnType;
58 typedef typename std::conditional<
59 std::is_member_function_pointer<AdapterFuncType>::value,
60 typename boost::mpl::at_c<boost::function_types::parameter_types<AdapterFuncType>, 1>::type,
61 typename boost::mpl::at_c<boost::function_types::parameter_types<AdapterFuncType>, 0>::type
65 typedef typename std::conditional<std::is_same<void, AdapterDataReturnType>::value,
76 #endif // SKA_CHEETAH_RFIM_POLICYINFO_H std::conditional< std::is_same< void, AdapterDataReturnType >::value, DataArgumentType, AdapterDataReturnType >::type ReturnType
the data type the policy will return
Analyse RFIM policy to extract traits.
Some limits and constants for FLDO.
std::conditional< std::is_member_function_pointer< AdapterFuncType >::value, typename boost::mpl::at_c< boost::function_types::parameter_types< AdapterFuncType >, 1 >::type, typename boost::mpl::at_c< boost::function_types::parameter_types< AdapterFuncType >, 0 >::type >::type DataArgumentType
The argument type that is to be expected to represent the TimeFrequencyData.