C ++代码标准由国际标准化组织(ISO)定义。有许多不同的C ++实现,如GCC / G ++,libc / libc ++,clang(++ too),Microsoft Visual C ++,英特尔C ++编译器等。所以任何人都可以自己实现(编译器等,运行时库,...)并称之为C ++。
我想知道:
答案 0 :(得分:6)
这完全取决于编译器供应商。
C ++ 14标准本身正在developed openly on GitHub的原因之一是因为在此之前,供应商/实施者难以跟踪各种工作组闭门造车的情况。
使用C ++ 14 ISO正试图让供应商事先了解这些变化,参与塑造并了解他们的期望,并在他们发现任何问题时发表意见。
AFAIK许多编译器开发人员(并且一直都是)在ISO委员会中,但并非他们都设法及时实现所有事情。 众所周知,MSVC需要一段时间才能实现“noexcept”。 GCC的libstdc ++相当糟糕,虽然它比clang的libc ++更加速度优化。
AFAIK,clang是唯一的编译器to have all c++11 and c++14 features done,然后是标准范围之外的一些编译器(参见下面的页面)。 libc ++也很现代,完全支持c ++ 11(或者完全支持99%)。
希望ISO委员会现在设定的标准是如何制定标准,以便供应商快速准确地实施标准,而不是10年后。