Can the auto
keyword be used as a storage class specifier in C++11?
Is the following code legal in C++11?
int main() {
auto int x;
}
Prasoon Saurav
No the code is ill-formed in C++11. auto
in C++11 would be used to deduce the type of a variable from its initializer and it can't be used as a storage class specifier.
Correct Usage
int main()
{
auto x = 12; // x is an int
auto y = 12.3; // y is a double
}
auto int x;
is circular - you are literally declaring the type as an int
.
given that you had this information - there is no reason to not simply use:
int x;
if you wanted to declare x the type of another variable in scope you can use decltype
using sometype = float;
sometype y;
decltype(y) x;
来源:https://stackoverflow.com/questions/6087581/can-the-auto-keyword-be-used-as-a-storage-class-specifier-in-c11