在 2025-12-8 16:41, Andrew Pinski via Gcc 写道:
 From my understanding (but I could still be wrong), GCC and MSVC are
correct. because typename should cause the "function names" to be
ignored (a nested-name-specifier).
The reason why I could be wrong is clang marks as implementing DR 1310
while GCC marks as unknown if it implements DR 1310.
There could be still another reason why the injected name is the
naming the constructor that I don't understand either.
In `typename T::S s;` the _nested-name-specifier_ is `T::` and does not include `S` (7.5.4.3 Qualified names [expr.prim.id.qual], N4917).




--
Best regards,
LIU Hao

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to