【问题标题】:On which C standard will C++14 be based?C++14 将基于哪个 C 标准?
【发布时间】: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


【解决方案1】:

至少在当前的 C++ 标准草案中写到其规范性文件包括

——ISO/IEC 9899:1999,编程语言——C

——ISO/IEC 9899:1999/Cor.1:2001(E),编程语言 — C,技术 勘误 1

— ISO/IEC 9899:1999/Cor.2:2004(E),编程语言 — C,技术勘误 2

— ISO/IEC 9899:1999/Cor.3:2007(E), 编程语言——C,技术勘误 3

所以看起来新的 C++ 标准将基于 C99。

【讨论】:

    猜你喜欢
    • 2015-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-24
    • 2014-11-23
    • 2016-10-27
    • 1970-01-01
    • 2014-06-04
    相关资源
    最近更新 更多