为什么在 lambda 中按值传递比通过引用更快?按值与按参考相比每次快 1-2%。
class Foo
{
private:
int value;
public:
Foo(int value) { this->value = value; }
std::function<int()> lambdaTestByValue();
std::function<int()> lambdaTestByReference();
};
std::function<int ()> Foo::lambdaTestByValue()
{
return [=]() { return value; };
}
std::function<int()> Foo::lambdaTestByReference()
{
return [&]() { return value; };
}
在这种情况下,是什么让引用变慢?这适用于有或没有优化。