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

            Bug ID: 117625
           Summary: [concept] Declaration matching failed
           Product: gcc
           Version: 14.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: newsigma at 163 dot com
  Target Milestone: ---

The following code failed to compile using gcc, but compiles fine using clang
and msvc.

Link to compiler explorer: https://godbolt.org/z/jYo969oMM
Building option: -std=c++20
GCC version: GCC 10 ~ trunk

```
enum Enum {
    V
};

template<class T>
concept C = sizeof(T) == 1;

template<class, Enum> class A;

template<C T, int Length>
class B;

template<C T>
using B1 = B<T, 0>;

template<C T>
class A<B1<T>, Enum::V> {
    using B2 = B1<T>;
    A<B2, Enum::V> func();
};

template<C T>
A<B1<T>, Enum::V> A<B1<T>, Enum::V>::func() {
    return {};
}

int main() { return 0; }
```

Reply via email to