Issue 61414
Summary out-of-line implementation of a constrained inner template of a class template specialization does not match primary template
Labels new issue
Assignees
Reporter ldalessa
    In the following code, clang reports that it can not match the specialization with anything in the primary template. Both gcc and nvc++ (EDG+llvm) accept this as valid.

```c++
#include <concepts>

template<bool>
struct a
{
 template<std::movable T>
    void c(T&& t);
};

template<>
template<std::movable T>
void a<true>::c(T&&t)
{}
```

Output:
```c++
<source>:12:15: error: out-of-line definition of 'c' does not match any declaration in 'a<true>'
void a<true>::c(T&&t)
              ^
```

Live example: https://godbolt.org/z/3PnKj4c75
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to