1
鉴于形式的可变参数宏:将可变参数宏转换为可变参数模板函数?
#define MY_CALL_RETURN_F(FType, FId, ...) \
if(/*prelude omitted*/) { \
FType f = (FType)GetFuncFomId(FId); \
if(f) { \
return f(__VA_ARGS__); \
} else { \
throw invalid_function_id(FId); \
} \
} \
/**/
- 这可怎么改写为可变参数函数模板?
template<typename FType, typename ...Args>
/*return type?*/ tmpl_call_return_f(MyFunId const& FId, /*what goes here?*/)
{
...
FType f = (FType)GetFuncFomId(FId);
return f(/*what goes here?*/);
...
}
更新:我是如何声明为Args
引用类型特别感兴趣:&&
或const&
还是什么?
更新:请注意,FType应该是一个“普通”函数指针。
如何'FType'去推断?或者你打算明确指定它?如果是这样,你可能只需指定返回类型... –