该标准的ODR示例是否正确?

时间:2019-02-13 16:25:25

标签: c++ language-lawyer c++17 standards one-definition-rule

在回答之前,请注意another question密切相关。

C ++ 17标准(草稿here)。 6.2(​​2.8),给出以下示例:

struct S { static const int x = 0; };
const int &f(const int &r);
int n = b ? (1, S::x) // S::x is not odr-used here
          : f(S::x);  // S::x is odr-used here, so a definition is required

该示例的“ odr”表示“一个定义规则”,但是该示例的注释“此处未使用S :: x” 对我来说似乎毫无意义。是吗?

我不是语言律师,但不幸的是,该评论对我没有任何合理或近似的想法。这表明我缺少一个概念。

另一方面,像C ++ 17标准这样的1600页的文档可能会犯一些错误。我不批评,而只是希望确保我已理解。

此评论是胡扯还是有意义?请如何或为什么?

0 个答案:

没有答案