c++ - lambda函数有什么用?

标签 c++ lambda

谁能帮我理解下面的代码

#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/

相关文章:

javascript - x-amzn-错误类型 :UnrecognizedClientException While Calling AWS Api gateway with temporary Credentials

c++ - 帮我解决这个调用仿函数的 boost::lambda::if_then 表达式

c++ - 我应该使用 CFPlugin 还是 dlopen() 作为 OSX 上的 C++ 插件

c++ - 将许多类链接在一起

c++ - Boost.Asio 异步 TCP 客户端和多线程

ruby - 了解在 Ruby 中与 lambda 一起使用的 inject 行为

.net - 是否可以在Elasticsearch路径中使用lambda表达式?

c++ - dllexport'ing 静态模板方法

c++ - 如何将带有 const 参数的 C++ 函数或 C++ 结构链接到 D 可执行文件?

lambda - Java 8 流和 lambda 是在骗人吗?