При создании локальных переменных правильно ли использовать (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)