Описание тега auto
Ключевое слово ʻauto` было перепрофилировано в C++11 для выведенного типа. При использовании для замены имени типа в объявлении инициализированной переменной переменной присваивается тот же тип, что и инициализатору. При использовании в качестве возвращаемого типа тип возвращаемого значения указывается как завершающий тип возвращаемого значения или выводится из возвращаемого выражения.
Рассмотрим следующий код:
bool Function()
{
return true;
}
bool result = Function();
Тип возврата Function
однозначно известно во время компиляции, поэтому объявление переменной можно заменить на:
auto result = Function();
Тип result
таким образом будет выведено. Вauto
ключевое слово становится очень полезным, когда имя типа длинное:
for (std::vector<MyNamespace::MyType>::const_iterator iter = v.cbegin(); iter != v.cend(); iter++)
C++11 позволяет более короткое объявление:
for (auto iter = v.cbegin(); iter != v.cend(); iter++)
Стоит отметить, что ключевое слово auto
изменило значение с появлением C++11, и почти всегда используется в этом новом контексте.