cplusplus / draft

C++ standards drafts
http://www.open-std.org/jtc1/sc22/wg21/
5.7k stars 751 forks source link

Assorted review comments for P1787R6 #4403

Open tkoeppe opened 3 years ago

tkoeppe commented 3 years ago

See #4379 for context.

Please feel free to derive new Issues from this material or email the wording reflectors.

Also feel free to directly edit the posts below with updated information.

opensdh commented 3 years ago

I think using "verify" would be wrong: the name that is dependent is looked up before it is known to be dependent, not as a double-check. (That's not to say we can't find a better word!)

opensdh commented 3 years ago

The "X or Y and Z" cannot be reasonably interpreted as "(X or Y) and Z" because Z refers to an object identified by Y. We can of course use bullets or an extra "if" to avoid the reader having to figure this out.

opensdh commented 3 years ago

The "it" is the elaborated-type-specifier; there is no sentence fragment here, just a compound predicate. (Jens was pointing out that adding an "it" could be misconstrued as bringing in a new antecedent.) Also, the comment to which this comment links has the same link twice, so I don't know what the other "request[] for rewording" is.

tkoeppe commented 3 years ago

It's perfectly possible that I eventually messed up the copy paste and copied something twice!

opensdh commented 3 years ago

The "therefrom" is "from [that] explicit instantiation of that entity" (again).

opensdh commented 3 years ago

Either of "whose" -> "which" or "in whose" -> "whose" would change the meaning of the sentence, as would rewording to omit "search" (which causes the naming class to be the derived class, not the base class, unless d.B::x is used).

opensdh commented 3 years ago

Jens' interpretation is correct; the reachability check is between D3 and D2, although I haven't tried to construct an example where this differs from checking D1/D2.

opensdh commented 3 years ago

The use of "it could be a friend function" is preexisting.

opensdh commented 3 years ago

The "member of a class that is the current instantiation" is preexisting.

Via the same comment here: a lookup context is an entity; the check against "the current instantiation" is complicated by the existing confusion between id-expressions and entities in the use of that phrase.

opensdh commented 3 years ago

The phrase "program point" is preexisting (although often just as the word "point").

opensdh commented 3 years ago

The "point of the lookup" is the program point from which the lookup is performed. Every lookup has such a point, although in some cases one lookup is described in terms of another which is supposed to take place at the same point without repeating "from a point P" on both sides.

opensdh commented 3 years ago

Here, "it" refers to the "class, namespace, or enumeration" in question.

opensdh commented 3 years ago

The "(original) lookup context" is the lookup context of Q, not the one used for the surrogate lookups in bullets 2 and 3.

opensdh commented 3 years ago

"Such a constructor name" is preexisting (not that rectifying this misuse of "name" would be at all out of scope here).

opensdh commented 3 years ago

How can "its" (be construed to) refer to a plural subject?

opensdh commented 3 years ago

"The result is the entity" is preexisting (the diff is misleading here).

tkoeppe commented 3 years ago

Thanks a lot for all the clarifications and double-checks!