在回答之前,请注意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页的文档可能会犯一些错误。我不批评,而只是希望确保我已理解。
此评论是胡扯还是有意义?请如何或为什么?