【发布时间】:2019-07-10 13:46:29
【问题描述】:
在阅读 C++ 标准时,经常会看到诸如“......格式错误,无需诊断”之类的名称。一个(随机)示例可以在 13.8.1/17 中找到:
类 S1::Inner1 格式不正确,不需要诊断,因为 它没有有效的专业化。
在标准中哪里可以找到一种相反的规范性语言,它可以对格式错误的程序进行诊断?
【问题讨论】:
标签: c++ language-lawyer
在阅读 C++ 标准时,经常会看到诸如“......格式错误,无需诊断”之类的名称。一个(随机)示例可以在 13.8.1/17 中找到:
类 S1::Inner1 格式不正确,不需要诊断,因为 它没有有效的专业化。
在标准中哪里可以找到一种相反的规范性语言,它可以对格式错误的程序进行诊断?
【问题讨论】:
标签: c++ language-lawyer
你要找的是[intro.compliance]/1
可诊断规则集由本文档中的所有句法和语义规则组成,但那些包含“不需要诊断”的明确表示法或被描述为导致“未定义行为”的规则除外。
如果程序包含违反任何可诊断规则或出现在本文档中描述为“有条件支持”的构造,而实施不支持该构造,则符合要求的实施应发出至少一条诊断消息。
这保证了如果您违反了可诊断规则之一,您将收到一条诊断消息。
【讨论】: