Open xmh0511 opened 2 years ago
D2449R0 (the sequel to P1787, not yet published anywhere) already addresses this.
D2449R0 (the sequel to P1787, not yet published anywhere) already addresses this.
Does D2449R0 consider CWG2584?
CWG2548 talks about "Array prvalues and additive operators". That seems unrelated.
CWG2548 talks about "Array prvalues and additive operators". That seems unrelated.
Thanks. I gave the wrong CWG number. It is CWG2584.
No, since the inadequate definition of equivalence predates P1787 and isn't fundamentally a lookup concern. However, see also CWG2603.
No, since the inadequate definition of equivalence predates P1787 and isn't fundamentally a lookup concern. However, see also CWG2603.
Since "correspond" is introduced by P1787 and the definition depends on the equivalence in [temp.over.link], so [temp.over.link] should be revamped.
Full name of submitter (unless configured in github; will be published with the issue): Jim X
In general, two declarations that correspond and satisfy [basic.link] p8 can declare the same entity. However, [temp.expl.spec] p4 explicitly says
So, the rule regarding whether two declarations correspond([basic.scope.scope] p4) cannot apply to explicit specializations.
So, how to determine whether
#1
and#2
declare the same entity and therefore violate [basic.def.odr]? We cannot find any proof in the standard. Unlike [temp.spec.partial] explicitly regulates thatWhich overwrites the common rule about whether two declarations declare the same entity(although whether template argument lists are equivalent is not clear, which is CWG2584). Explicit instantiation also has the same issue as an explicit specialization for whether two declarations declare the same entity or not.