首页 > 解决方案 > 复制无状态对象(lambdas)的成本?

问题描述

如何确定通过复制 lambda 创建对象是否有成本?

template<typename Lambda>
class A {
public:
  A(Lambda lambda) : _lambda(lambda) {} // const Lambda& lambda less efficient?
  auto call(double x) { return _lambda(x); }
private:
  Lambda _lambda; // is const Lambda& _lambda less efficient?
};

我想知道如果 lambda 没有状态,那么引用是否成本高昂或微不足道(与复制 lambda 相同)?

标签: c++templateslambdafunctorstateless

解决方案


如何确定通过复制 lambda 创建对象是否有成本?

通过使用您打算使用的特定编译器(和开关)进行测试和分析。其他任何事情都是对您尚未确定的实施质量做出假设。


推荐阅读