lambda函数有什么用?

Utt*_*kar 2 c++ lambda

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

#include <iostream>
using namespace std;

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

    // Call the lambda function
    hello();
}
Run Code Online (Sandbox Code Playgroud)

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

us2*_*012 7

读它好像是一行:

auto hello = []() -> void { cout << "Hello World"; };
Run Code Online (Sandbox Code Playgroud)

hello 是一个包含lambda的变量

  • 不捕获外部变量([]),
  • 不带参数(()),
  • 返回void(-> void,这称为'尾随返回类型',指定lambda的返回类型,就像普通函数一样.这实际上是不必要的.),和
  • cout由其内部的单一陈述组成.

它实际上并没有在明确调用它的下一行之前执行.