谁能帮我理解下面的代码
#include <iostream>
using namespace std;
int main()
{
auto hello = []() -> void {
cout << "Hello World";
};
// Call the lambda function
hello();
}
这里的auto hello = []() -> void
有什么用?
我不明白花括号(第 7 行)之后的终止分号的含义
最佳答案
把它当作一行来读:
auto hello = []() -> void { cout << "Hello World"; };
hello
是一个包含 lambda 的变量
- 不捕获外部变量(
[]
), - 不带参数(
()
), - 返回
void
(->void
,这称为“尾随返回类型”,就像普通函数一样指定 lambda 的返回类型。这在这里实际上是不必要的。)和 - 由其主体中的单个
cout
语句组成。
它直到下一行被显式调用时才会真正执行。
关于c++ - lambda函数有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15313679/