经常在 SO(和其他地方)上我看到这样的说法:C++ 标准中的注释和示例不规范 - 我自己可能已经多次提出过这种说法。
但是,我在 C++ 标准的核心语言规范中找不到这一事实的证据(目前我正在查看 C++14 的 n3979 工作草案)。
我能找到的最接近的引用在第 17.5.1.2/2 段中:
标有“注释:”或“示例:”的段落是信息性的,其他段落是规范性的。
但是,除非我弄错了,否则该段落仅适用于图书馆部分(即第 18 条至第 30 条和附件 D)。
因此问题:C++ 标准中的所有注释和示例都是非规范的吗?脚注怎么样?
请参阅ISO/IEC 指令第 2 部分第 6.5 节。注释、示例和脚注都被视为“信息性”,而不是“规范性”。
注释和示例:
文档正文中集成的注释和示例仅用于给出 旨在帮助理解或使用该文件的附加信息。他们应 不包含要求(“应”;参见 3.3.1 和表 H.1)或考虑的任何信息 对于使用该文档是必不可少的,例如说明(强制;参见表 H.1), 建议(“应该”;参见 3.3.2 和表 H.2)或许可(“可以”;参见表 H.3)。 注释可以写成事实陈述。
脚注:
文本脚注提供附加信息;它们的使用应保持在最低限度。按原样 正文中集成的注释和示例的情况(见 6.5.1) 脚注不得包含 要求或任何被认为对于使用该文件必不可少的信息。
但是,请注意,图表的脚注可以包含要求。
按照标准的编写方式,实现符合要求所需要的只是它能够处理至少一个(可能是人为的且无用的)程序。然而,要使任何实现真正有用,它必须超出标准给出的基本要求。
虽然实现不需要以与示例一致的方式运行,但这样做的实现通常应该被认为优于那些不这样做的实现。未能做到这一点的实现是否应被视为具有足够的质量以用于某些特定目的,这取决于所讨论的目的和失败的原因。