2015-07-18 8 views
2

Я использую книгу на C++, которая была написана под новым стандартом C++ 11 (C++ primer), и я вижу, что он использует LOT раз auto. Говоря все время, что очень сложно объяснить точный тип, поэтому мы его используем. Мой вопрос: какие программисты используют до auto? Например, в простых циклах с функциями begin() и end() он использует auto для определения типа переменной.Прежде чем «авто» что?

+3

Они записали имя фактического типа. Что вы ожидаете? –

+0

Люди просто использовали типы вместе с петлей на основе итератора. – shuttle87

+1

Мы предпочитаем забывать о тех смутных временах :) Написание типов в полном объеме действительно очень болезненно. Я помню, что с помощью 'typedef' было много, чтобы немного облегчить выражения. Такие вещи, как 'boost :: foreach', помогли несколько, но только немного. –

ответ

8

Они использовали явный тип. Вы можете думать о auto как универсальный псевдоним. Сравните следующие:

std::vector<int> vec; 
for(std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it) 
    //doStuff 

std::vector<int> vec; 
for(auto it = vec.begin(); it != vec.end(); ++it) 
    //doStuff 
+0

Спасибо :) Очень полезно! – telis80

2

Жизнь до auto все должно быть явно объявлено.

+3

Жизнь была тяжелой. :) – 0x499602D2

2

Перед auto мы использовали typedef с, чтобы иметь более короткие псевдонимы для длинных типов. В настоящее время мы используем using вместо typedef, чтобы иметь больше связанных с контекстом псевдонимов для типа, но у нас гораздо меньше потребности в более коротких псевдонимах.

Смежные вопросы