嗨,假设我有一个 typedef ReturnType (ObjectType::*fun1 )( Arg0 ); 是否有可能通过对函数的一个引用以某种方式获取参数的返回类型和数量?
例如现在我有:
template <typename ObjectType, typename ReturnType, typename Arg0, typename Arg1 >
Private::value_fun< ObjectType, TYPELIST_2(Arg0, Arg1), ReturnType > val_mem_funcion(typename Private::value_fun<ObjectType, TYPELIST_2(Arg0, Arg1), ReturnType>::FunctionType func, Arg0 arg0, Arg1 arg1) {
return Private::value_fun <ObjectType, TYPELIST_2(Arg0, Arg1), ReturnType>( func, arg0, arg1 );
}
我的电话是:
std::for_each( test.begin(), test.end(), utils::val_mem_funcion<Test, int>(&Test::sum, 33, 44) );
但如果我可以删除模板参数并使其如下所示会更好:
std::for_each( test.begin(), test.end(), utils::val_mem_funcion(&Test::sum, 33, 44) );