在 C++11 标准中(最接近的草案是 N3337 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf) 部分1.2
规范性引用文件 says:
以下参考文件是必不可少的
本文件的应用。对于注明日期的参考文献,仅提供版本
引用适用。对于未注明日期的参考文献,最新版本
参考文件(包括任何修订)适用。
但没有关于如何应用参考文献的指南。最简单的情况是当 C++11 显式引用回引用时,例如在部分中3.9.1
基本类型它说:
[...]有符号和无符号整数类型应满足
C 标准第 5.2.4.2.1 节中给出的约束。
但是其他没有明确引用的情况又如何呢?例如,C++11 使用单词不确定值但它没有定义该术语。规范性参考文献包括:
— ISO/IEC 9899:1999,编程语言 — C
[...]
— ISO/IEC 9899:1999/Cor.3:2007(E),编程语言 — C,技术勘误表 3
and C99(c99标准草案 http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf)确实有一个定义不确定值在部分3.17.2
其中说:
未指定的值或陷阱表示
这样说是否正确不确定值C++11 是参考 C99 定义的,例如这个答案似乎适用于位的定义 https://stackoverflow.com/a/12655876/1708801?如果是,那又怎样陷阱表示一节中介绍了6.2.6.1
段落5 under 类型的表示在C99中?
慷慨的解读是,只要 C++11 中没有任何内容与规范性参考发生冲突,那么它就适用,这是正确的解释吗?一些答案C++ 中的不确定行为是什么?它与未定义的行为有何不同? https://stackoverflow.com/questions/11240484/what-is-indeterminate-behavior-in-c-how-is-it-different-from-undefined-behav似乎意味着慷慨的阅读,尽管某些答案的语言有点宽松,因此很难说出某些观点到底声称了什么。
的功能规范性参考文献ISO 标准文件的部分定义于ISO/IEC 指令,第 2 部分,2011 年 http://www.iec.ch/members_experts/refdocs/iec/isoiec-dir2%7Bed6.0%7Den.pdf §6.2.2:
6.2.2 规范性引用文件
该条件元素应给出引用文件的列表(见 6.6.7.5)
该文件的方式使得它们对于该文件的应用是不可或缺的。对于注明日期的参考文献,每份参考文献均应标明其出版年份,或者,在查询或最终草案的情况下,应标明破折号以及脚注“待出版”和完整标题。对于未注明日期的参考文献,不得给出出版年份或破折号。当未注明日期的引用涉及文件的所有部分时,出版号后面应注明“(所有部分)”和该系列部分的总标题(即介绍性和主要内容,见附件 E)。
原则上引用的文件应为ISO和/或IEC发布的文件。
可以以规范的方式引用其他机构发布的文件,前提是:
a) 所引用的文件被相关 ISO 和/或 IEC 委员会认可为
具有广泛的接受度和权威地位并且可以公开使用,
b) 有关的 ISO 和/或 IEC 委员会已获得作者的同意或
引用文件的出版商(如果已知)及其包含和存在
按要求提供——作者或出版商将被期望提供
可根据要求提供此类文件,
c) 作者或出版商(如果已知)也同意通知 ISO 和/或 IEC
委员会对他们打算修改所参考的文件和
修订涉及的要点,以及
d) 有关 ISO 和/或 IEC 委员会承诺根据以下情况审查情况
参考文档中的任何更改。
该清单应采用以下措辞介绍:
“本标准规范性引用了下列文件的全部或部分内容:
文件,对于其应用是必不可少的。对于注明日期的参考文献,仅提供版本
引用适用。对于未注明日期的参考文献,参考文献的最新版本
(包括任何修订)适用。”
上述措辞也适用于多部分文档的一部分。
该清单不得包括以下内容:
此类参考文献可在参考书目中列出(见 6.4.2)。
值得注意的是,它没有说引用文档的内容已合并到当前文档中。本质上,它作为以某种方式规范引用的所有其他标准文档的列表别处在文件中。
因此,并非 C99 中的所有内容都合并到 C++11 中 - 只有 C99 中特别引用为合并到 C++11 标准中的那些部分。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)