https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67003

            Bug ID: 67003
           Summary: [c++-concepts] Qualified name lookup fails in a
                    template introduction
           Product: gcc
           Version: c++-concepts
            Status: UNCONFIRMED
          Severity: minor
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: Casey at Carter dot net
  Target Milestone: ---

This correct program fails to compile:

namespace X {
  template<class>
  concept bool C = true;
}

X::C{T}
void foo() {}

int main() { foo<int>(); }

with the error:

foo.cpp:8:4: error: ā€˜C’ has not been declared
 X::C{T}
    ^

but compiles correctly despite the qualified name if the concept is imported
into the global namespace with a using declaration:

using X::C;
X::C{T}
void foo() {}

Reply via email to