在 2025-12-8 16:41, Andrew Pinski via Gcc 写道:
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).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.
-- Best regards, LIU Hao
OpenPGP_signature.asc
Description: OpenPGP digital signature
