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