Я читал в Интернете много учебников, в которых объяснялось, как использовать лямбды со стандартной библиотекой (например, std::find
), и все они были очень интересными, но я не мог найти ни одного объяснения, как я могу использовать лямбда для своих собственных функции.Как объявить функцию, которая принимает лямбда?
Например:
int main()
{
int test = 5;
LambdaTest([&](int a) { test += a; });
return EXIT_SUCCESS;
}
Как я должен объявить LambdaTest
? Каков тип его первого аргумента? И затем, как я могу назвать анонимную функцию, передаваемую ей, например, - «10» в качестве аргумента?
Это лучший ответ. – Puppy
В случае ошибок сообщения об ошибках будут трудно понять. – liori
Это зависит от того, лучше ли это. Это использует шаблон, а другой - нет. Это означает, что функция больше не может быть виртуальной и не может быть определена отдельно в файле cpp. 'std :: function' вполне может также использовать типы классов объектов объектов, хотя при вызове он немного медленнее. Но эта разница ничтожна для самых приложений :) –