'auto'关键字可以用作C ++ 11中的存储类说明符吗?

时间:2011-05-22 11:22:47

标签: c++ c++11 variable-declaration storage-class-specifier

auto关键字是否可以用作C ++ 11中的存储类说明符?

以下代码在C ++ 11中是否合法?

int main() {
   auto int x;
}

2 个答案:

答案 0 :(得分:13)

C ++ 11中没有代码格式错误。 C ++ 11中的auto将用于从其初始化程序中推导出变量的类型,并且不能用作存储类说明符。

正确使用

int main()
{
   auto x = 12; // x is an int
   auto y = 12.3; // y is a double
}

答案 1 :(得分:0)

auto int x;

是循环的 - 您实际上将该类型声明为int。 鉴于您拥有此信息 - 没有理由不简单地使用:

int x;

如果你想在范围内声明x另一个变量的类型,你可以使用decltype

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