Меня смущает следующий фрагмент кода:
#include <iostream>
using namespace std;
int *foo()
{
//Operation
}
int main ()
{
auto int ret = foo();
}
Я скомпилировал приведенный выше код под GCC, но получил следующую ошибку:
error: two or more data types in declaration of 'ret'
auto int ret = foo();
Но если я удалю тип int
, вот так:
auto ret = foo();
тогда он работает успешно.
auto
– это класс хранилища, а int
– тип данных, тогда почему в первом случае я получаю сообщение об ошибке "два или более типов данных"? сильный>
auto
в качестве спецификатора класса хранения в дикой природе. Я думаю, именно поэтому люди согласились, что это может быть переназначено. В любом случае теперь (C++11 on) это означаетauto
matically выводить тип, и это потрясающе. - person Persixty   schedule 12.04.2017