3
我一直在試圖獲取一個模板函數來調用一組類似的函數來避免樣板。爲什麼我的模板參數包不工作?
FooA(float a, Widget* w);
FooB(int b, Widget* w);
FooC(int c, Widget* w);
FooD(int d, int e, Widget* w);
template <typename... Args>
static void RunFoo(void (*foo)(Args..., Widget*), Args... args) {
Widget w
foo(args, &w);
}
我不明白爲什麼這工作正常:
float a = 10;
RunFoo(FooA, a);
但每當我嘗試用多個參數失敗:
int a = 10;
int b = 3;
RunFoo(FooD, a, b);
它失敗,錯誤編譯: 「候選模板被忽略:失敗的模板參數推演」
這是超越C++模板的功能?
@rhi謝謝,這是一個正確的編輯。 – Yakk