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