https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115915
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #1) > The question is does that friend is naming `::extent` or is naming > `std_1::extent` using the `using namespace` statement. I suspect GCC and EDG > think it is `::extent` while clang and MSVC think it is `std_1::extent`. Right, GCC is declaring a new type named extent in the namespace enclosing S.