我最近想知道为什么auto
在C ++ 11中选择了关键字来标记必须由编译器推断类型的变量,例如
auto x = 1;
以来
var
在其他编程语言(例如C#,Scala,JavaScript)中似乎更常见,并且- 据我所知,
auto
breaks向后兼容的新语义(它很少使用,但在以前的C ++版本中具有不同的含义,请参见例如此处)。
我想问一下是否有一个特殊的原因选择auto
(赞成var
或其他任何关键字)。在C ++ 11标准发布之前是否有关于此问题的特定讨论?
另外,在使用C ++ 11编译器重新编译旧版C ++代码时,是否应该注意任何可能的不兼容性?
auto
VS var
的问题是什么90%的文字是指,并认为这一问题没有明确的结果。(尽管我不是投票关闭的人)
auto
是var
在C#中引入之前针对C ++提出的,因此问题应该是为什么C#不使用auto。var在JavaScript和Scala中具有不同的含义
auto
可能会破坏向后兼容性,但是,根据var
与auto
11之前的代码中使用关键字的频率相比,用作变量名的频率,委员会可能认为与引入新的兼容性相比,破坏兼容性的可能性不那么大。关键字会。