Pio*_*ycz 4 c++ auto c++11 c++03
我知道auto
之前有一些用法,因为它是变量的默认值(与静态相反) - 请参阅问题
考虑有效的C++ 03代码,其中可能为了不言自明,使用了这个关键字:
auto int foo2 = 8;
Run Code Online (Sandbox Code Playgroud)
它在C++ 03下编译,不能在C++ 11下编译.有没有理由不与C++ 03反向兼容?标准委员会意见的来源是什么,没有使用此关键字?是否有关键字使用情况的统计数据?
BTW我用gcc测试过 - 也许这是一个编译器错误?
pmr*_*pmr 17
众所周知,这会破坏兼容性,并在标准的附录C 2.3第7条中提及.鉴于汽车一直没用,并且确实很容易修复成本被认为是可以接受的.
至于关键字统计:一些拥有巨大代码库的公司在委员会中,他们可能知道它是否可以接受,但我无法挖掘任何完整的统计数据.
我做了一些标准考古学和谈论的最古老的论文auto
似乎是N1478,它指的是第一次讨论auto的反射器信息(所有后来的论文都没有讨论破坏兼容性或推理).
Nic*_*las 12
这是从C++ 11中删除的,因为它们有一个新用途auto
,并且允许auto auto foo2 = 8;
工作会让人感到困惑.通过删除这个古老而毫无意义的宣言,没有任何重要意义.