https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102350
--- Comment #16 from Peter Dimov <pdimov at gmail dot com> --- (In reply to Jakub Jelinek from comment #14) > But we haven't done that that way and how would headers know if the > __builtin_source_location that is available is the old or new one? The header could do namespace std { struct __source_location_impl { ... }; class source_location { using __impl = __source_location_impl; // ... }; } unless the compiler looks specifically for a nested struct, in which case class source_location { struct __impl: __source_location_impl {}; // ... };