| 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