https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92944
Bug ID: 92944 Summary: [concepts] redefinition error when using constrained structure template inside namespace Product: gcc Version: 9.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: akaraevz at mail dot ru Target Milestone: --- The following piece of code compiles fine: namespace N { template <class T> struct Q; } namespace N { template <class T> requires false struct Q<T> {}; } namespace N { template <class T> requires true struct Q<T> {}; } But this one is not: namespace N { template <class T> struct Q; } template <class T> requires false struct N::Q<T> {}; template <class T> requires true struct N::Q<T> {}; // error: redefinition of 'struct N::Q<T>' Tested on https://godbolt.org/z/4kQMn9 (8.1, 8.2, 8.3, 9.1, 9.2, trunk)