嵌套lambda的效率

时间:2016-02-07 19:50:00

标签: c++ lambda

这是一个main定义了两个lambdas的程序。 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版本一样高效?

1 个答案:

答案 0 :(得分:1)

它比那更好;这两个程序都与:

相同
#include <iostream>

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