lambda函数有什么用?

时间:2013-03-09 17:23:10

标签: c++ lambda

任何人都可以帮我理解以下代码

#include <iostream>
using namespace std;

int main()
{
    auto hello = []() -> void {
        cout << "Hello World";
    };

    // Call the lambda function
    hello();
}

auto hello = []() -> void在这有什么用? 我不明白大括号后的终止分号的含义(第7行)

1 个答案:

答案 0 :(得分:7)

把它读起来好像是一行:

auto hello = []() -> void { cout << "Hello World"; };

hello是一个包含

的lambda的变量
  • 不捕获外部变量([]),
  • 不接受参数(()),
  • 返回void-> void,这称为&#39;尾随返回类型&#39;,指定lambda的返回类型,就像普通函数一样。这实际上是不必要的这里。)和
  • 由其正文中的单个cout语句组成。

它实际上并没有被执行,直到明确调用它的下一行。