这是一个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版本一样高效?
答案 0 :(得分:1)
它比那更好;这两个程序都与:
相同#include <iostream>
int main()
{
std::cout << "b" << std::endl;
}