Может ли ключевое слово 'auto' использоваться в качестве спецификатора класса хранения в C ++ 11? - PullRequest
10 голосов
/ 22 мая 2011

Может ли ключевое слово auto использоваться в качестве спецификатора класса хранения в C ++ 11?

Допустим ли следующий код в C ++ 11?

int main() {
   auto int x;
}

Ответы [ 2 ]

13 голосов
/ 22 мая 2011

Нет, код некорректен в C ++ 11.auto в C ++ 11 будет использоваться для определения типа переменной из ее инициализатора, и его нельзя будет использовать в качестве спецификатора класса хранения.

Правильное использование

int main()
{
   auto x = 12; // x is an int
   auto y = 12.3; // y is a double
}
0 голосов
/ 04 октября 2016
auto int x;

является круглым - вы буквально объявляете тип как int. учитывая, что у вас была эта информация - нет причин не просто использовать:

int x;

если вы хотите объявить x тип другой переменной в области видимости, вы можете использовать decltype

using sometype = float;
sometype y;
decltype(y) x;
...