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)

Reply via email to