我对这两个功能的效率的理解正确吗?
VectorXd v;
void Foo(const ArrayXd&);
void Boo(const Ref<const ArrayXd>&);
// a temporary is created?
Foo(v);
// no temporary is created?
Boo(v);
[此外,我还在eigen's doc中看到一些签名,例如Boo
,但没有&
。与上面的Boo
有什么实际区别吗?
是,您的理解是正确的。
关于Boo
的签名,请参见此answer。