【发布时间】:2011-05-22 11:22:46
【问题描述】:
auto 关键字可以用作 C++11 中的存储类说明符吗?
以下代码在 C++11 中合法吗?
int main() {
auto int x;
}
【问题讨论】:
标签: c++ c++11 variable-declaration storage-class-specifier
auto 关键字可以用作 C++11 中的存储类说明符吗?
以下代码在 C++11 中合法吗?
int main() {
auto int x;
}
【问题讨论】:
标签: c++ c++11 variable-declaration storage-class-specifier
不,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;
【讨论】: