我在網上閱讀了很多教程,解釋瞭如何使用帶有標準庫的lambda表達式(例如std::find
),它們都非常有趣,但是我找不到解釋如何使用lambda表示我自己的lambda表達式功能。如何聲明一個接受lambda的函數?
例如:
int main()
{
int test = 5;
LambdaTest([&](int a) { test += a; });
return EXIT_SUCCESS;
}
我應該怎樣申報LambdaTest
?第一個參數的類型是什麼?然後,我該如何調用傳遞給它的匿名函數 - 例如 - 「10」作爲它的參數?
這是最好的答案。 – Puppy 2010-05-30 12:39:04
如果出現錯誤,錯誤消息將難以理解。 – liori 2010-05-30 12:40:57
這取決於它是否最好。這使用了一個模板,而另一個沒有。這意味着該函數不能再是虛擬的,並且不能在cpp文件中單獨定義。 'std :: function'完全能夠使用函數對象類類型,儘管調用時會稍微慢一些。但是這種差別對於大多數應用程序來說是微不足道的:) – 2010-05-30 12:41:15