C ++ 11中的auto关键字奇怪行为

时间:2012-08-29 17:51:47

标签: c++ c++11

仅限理论问题 - 为什么我不能写这样的代码:

auto auto foo = 0;

第一个自动关键字 - 存储类说明符(是的,我知道它在C ++ 11中没用并且已弃用),第二个自动关键字 - 自动类型说明符。

那有什么不对?

再次 - 我真的不想在实际代码中使用它。

2 个答案:

答案 0 :(得分:19)

auto存储类说明符不是“无用且在C ++ 11中已弃用”,它已被完全删除。 auto关键字不再是存储类说明符,不能用作一个。

在C ++ 11中,auto是一个简单的类型说明符。

答案 1 :(得分:3)

来自Stroustrup's FAQ

  

....现在是auto的旧含义(“这是一个局部变量”)   非法。几个委员会成员在数百万行中搜寻   代码只发现了一些用途 - 其中大部分都在   测试套件或似乎是错误。

这表明使用“auto”作为存储说明符的代码很多。