这是一个程序,其中 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/