c++ - 嵌套 lambda 的效率

标签 c++ lambda

这是一个程序,其中 main 定义了两个 lambda。 a 调用 b:

#include <iostream>

int main()
{
    auto b = []() { std::cout << "b" << std::endl; };
    auto a = [&]() { b(); };

    a();
}

现在,由于b只被a使用,它也可以定义在a中:

#include <iostream>

int main()
{

    auto a = []() 
    { 
        auto b = []() { std::cout << "b" << std::endl; };

        b(); 
    };

    a();

}

我的问题是:假设 a 在循环中被重复调用,因此存在效率问题。大多数编译器能否使 b-inside-a 版本与 b-outside-a 版本一样高效?

最佳答案

比那更好;这两个程序将相同于:

#include <iostream>

int main()
{
   std::cout << "b" << std::endl;
}

关于c++ - 嵌套 lambda 的效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35258260/

相关文章:

c++ - Windows MessageBox 忽略 WM_CLOSE

c++ - 如何使用既设置计数又填充数组的函数?

c++ - 一个线程等待多个线程事件

c# - 更具体/更强的 MemberExpression 用于编译时检查?

java - Java 流中缺少返回语句

c++ - cout 覆盖了我的一些指针

python - 使用pandas进行Unix时间戳转换问题

c++ - 当我不确定输入是什么时使用什么变量?

C++ 指针名称

java - lambda 表达式中变量名的约定是什么?