我怎样才能立即运行lambda?

时间:2016-05-14 03:00:16

标签: c++ c++11 lambda

如何立即运行lambda而不是存储它然后再运行它?

而不是像这样存储lambda:

auto lambda = [&](){ std::cout << ++x << '\n'; }

我试图像这样立即运行它:

[&](){ std::cout << ++x << '\n'; }

但是这给了我这个错误信息:

Warning: expression result unused

1 个答案:

答案 0 :(得分:11)

您可以通过在末尾放置括号来立即调用lambda,如下所示:

int x = 0;
[&]{ std::cout << ++x << '\n'; }();
                             // ^^

现在这将打印出1