При создании локальных переменных правильно использовать (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)
autoработает (за исключением особого случаяinitializer_lists, которые не выводится в контексте шаблона), затемautoвведите вывод.