如何立即运行lambda而不是存储它然后再运行它?
而不是像这样存储lambda:
auto lambda = [&](){ std::cout << ++x << '\n'; }
我试图像这样立即运行它:
[&](){ std::cout << ++x << '\n'; }
但是这给了我这个错误信息:
Warning: expression result unused
答案 0 :(得分:11)
您可以通过在末尾放置括号来立即调用lambda,如下所示:
int x = 0;
[&]{ std::cout << ++x << '\n'; }();
// ^^
现在这将打印出1