MACE
1.0.0
|
00001 #ifndef __MACE_RPC_JSON_NAMED_PARAMETERS_HPP_ 00002 #define __MACE_RPC_JSON_NAMED_PARAMETERS_HPP_ 00003 #include <boost/mpl/if.hpp> 00004 #include <boost/fusion/include/mpl.hpp> 00005 #include <boost/fusion/adapted/mpl.hpp> 00006 #include <boost/fusion/include/make_vector.hpp> 00007 #include <boost/function_types/parameter_types.hpp> 00008 #include <boost/function_types/result_type.hpp> 00009 00010 namespace mace { namespace rpc { namespace json { 00011 struct named_parameters{}; 00012 // namespace detail 00017 template<typename Seq> 00018 struct has_named_params : 00019 public boost::mpl::if_c< 00020 (boost::is_base_of<named_parameters, 00021 typename boost::fusion::traits::deduce< 00022 typename boost::fusion::result_of::front<Seq>::type >::type>::value 00023 && (1 == boost::fusion::result_of::size<Seq>::value)) 00024 , boost::true_type, boost::false_type>::type 00025 { }; 00026 00027 } } } 00028 00029 #endif // __MACE_RPC_JSON_NAMED_PARAMETERS_HPP_