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'去推斷?或者你打算明確指定它?如果是這樣,你可能只需指定返回類型... –