auto
关键字可以在C++11中用作存储类别限定符吗?
以下代码在C++11中是否合法?
int main() {
auto int x;
}
auto
关键字可以在C++11中用作存储类别限定符吗?
以下代码在C++11中是否合法?
int main() {
auto int x;
}
不行,在C++11中这段代码是不合法的。在C++11中,auto
用于从初始化器推导变量的类型,不能用作存储类别说明符。
正确用法:
int main()
{
auto x = 12; // x is an int
auto y = 12.3; // y is a double
}
auto int x;
这是一个循环 - 你实际上声明了类型为int
。既然你已经有了这个信息 - 没有理由不简单地使用:
int x;
如果你想要声明一个变量 x 与当前作用域内的另一个变量类型相同,你可以使用 decltype
using sometype = float;
sometype y;
decltype(y) x;