При создании локальных переменных правильно ли использовать (const) auto&
или auto
?
например:.
SomeClass object;
const auto result = object.SomeMethod();
или const auto& result = object.SomeMethod();
Где SomeMethod() возвращает не-примитивное значение - возможно, другой пользовательский тип.
Я понимаю, что const auto& result
правильный, поскольку результат, возвращаемый SomeMethod(), вызовет конструктор копирования для возвращаемого типа. Пожалуйста, поправьте меня, если я ошибаюсь.
Как насчет примитивных типов? Я предполагаю, что const auto sum = 1 + 2;
верен.
Это также относится к диапазону, основанному на циклах?
for(const auto& object : objects)