我想打電話給lambda表達式在C++給人一種功能的其他功能
template <typename FUNC>
int execute (FUNC)
{
int a { 5 };
int b { 8 };
return FUNC (a, b);
}
與以下行:
std::cout << execute ([] (int a, int b){ return a + b; }) << std::endl;
,出現以下錯誤:
error C2661: 'main::<lambda_5994edd6ba73caf12c83e036d510d0d8>::<lambda_5994edd6ba73caf12c83e036d510d0d8>': Keine überladene Funktion akzeptiert 2 Argumente
所以問題是我做錯了什麼?錯誤是德語,但它基本上只是說,該功能不需要2個參數,它顯然應該做
FUNC是不是在這方面發揮有效的論據。每一個參數(在這個上下文中)都必須包含類型名稱和變量名稱(如果你想引用它,你想要99%的時間)。只要讓你的函數接受'std :: function'你就可以去 –
Creris
2014-10-17 14:56:16