【发布时间】:2013-12-24 21:29:57
【问题描述】:
C 标准的哪个版本是 C++14 的基础?
C++11 基于 C99,比 C11 早几个月发布。 C++14 会基于 C11 吗? current draft 仍然(截至 2013 年 12 月)似乎在说“基于 ISO/IEC 9899:1999”,即 C99,我反复听说 C++14“几乎完成”并且此时只进行了微小的调整.在新标准投票之前修改对 C 的依赖是否合理?
【问题讨论】:
-
甚至不接近确定,但N3538 谈到添加 C11 的限制作为解决混叠的选项,我怀疑如果要重新设置它,那将不是一个可选的解决方案。
-
@JoachimIsaksson: 是的,
restrict是一个痛点...我听说 C++ 专家抱怨即使在 C99 中它的定义也很不明确,而且它不可能随时进入 C++很快。我更感兴趣的是,两种语言的内存模型是否可以保持同步。 -
@KerrekSB:但是 C++11 的内存模型并不是仅仅通过引用 C99 来定义的,因为它与 C11 在线程上的合作。所以我会说是的,两者的内存模型可以保持同步。不管引用的是哪个版本的 C。
-
我们不想要 C++ 中的类型泛型宏或其他 C11 特性,因此在 C11 上进行 rebase 是个坏主意。我们可能想要一些未来 C 标准的新库特性,但 C++14 引用的是 C99 而不是当前的 C 标准。
-
@JonathanWakely:真可惜——听起来像是越来越分裂?你能把这个推理变成答案吗?
标签: c++ standards language-lawyer c++14