In this answer in SO the OP says:
Per basic.def.odr/2, the set of potential results of
A::a[0]
is empty, soA::a
is odr-used by this expression.
Doesn't A::a[0]
satisfy the second bullet point in [basic.def.odr]/2? If this were the case, wouldn't A::a
be a potential result of A::a[0]
?
And then, we would conclude that A::a
is not odr-used by A::a[0]
in the initialization int a = A::a[0];
, by [basic.def.odr]/3, which is exactly the opposite of what the OP said in his answer.
What am I missing?
Edit When I mention above the second bullet point in [basic.def.odr]/2, I'm referring to the draft N4618. This bullet point was not present in the draft N3936 referred to by the OP. So it seems to me, that according to N3936 A::a
was odr-used by A::a[0]
, but it is not by N4618. Am I correct?