在创建局部变量时,使用 (const) auto&
或 auto
是否正确?
例如:
SomeClass object;
const auto result = object.SomeMethod();
or const auto& result = object.SomeMethod();
其中,somMethod ()返回一个非基元值-也许是另一个用户定义类型。
我的理解是 const auto& result
是正确的,因为 somMethod ()返回的结果会调用返回类型的复制建构子。如果我说错了,请纠正我。
那么对于基本类型呢? 我假设 const auto sum = 1 + 2;
是正确的。
这也适用于基于循环的范围吗?
for(const auto& object : objects)