<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/61414>61414</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            out-of-line implementation of a constrained inner template of a class template specialization does not match primary template
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          ldalessa
      </td>
    </tr>
</table>

<pre>
    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
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUVM2O4zYMfhr6QkxgS_7LwYdJMimKFmgP-wK0pMRayJIh0ZnOPn1hJ5NJc1h0DUMWJPL7-PHHlJI9e2M6qHZQHTKaeQixc5qcSYmyPuiP7nePPBg8BefCu_VnVEEbEHtUjvwZo5lC5IQ8EKNlVOTRB8aRWA2rZ5qMsuTsD2IbPL5bHpD8Bw8LmL2iT9GOFD-QzTg5YrPBXeABz0oheY3-okDsQOwQRPt2-A3EzrnLCGKLpJSZGHmwCSnhhZzVG8gPkL_e1jq_vjeI26mQ1is3a4Mg9yr4BSWBfHt0_YwG5L4Pwd1vE8dZMdLNtrlh4oN9Yg3yFeTrGC7UO4Pf7t6IiJdgNSoQ7TcQNYgaGcQW5GdwzeFr_xzJHef_sa1MBHLPcTbL6Wr3QL0y34U0h6esPUbx18zTzAvCzzIr9ynMUd3ICrEsFchXNDGGuGzCzC_h9OKsN6jNyXq7dkY4IYhGgWhQB5Me2oj8B2qjHMVrD1m_WD6qEs0vy8X_PFC9_UT5n_Zi0PxD4-TMomBgntKCLY4gjueg--B4E-IZxPEHiKP82__xvVRNlelO6q3cUma6om7aVjRVVWVD156qk9iWpaj7sqi2W8rrShdC9Vr2RVvLzHYiFzKXRSnyaltUm_pUtTWVTdVQJfO2hTI3I1m3WUZh4c5sSrPp6qIsysxRb1xaJ1sIb95xvQQhlkGP3eLz0s_nBGXubOL0hcKWnekea2QX2aPxTJ91IlTBJ45kvdFovTfx3v23e0cpfZ09_QSe6vs8_tkcXfeUY8vD3G9UGEEcr8O_fl6mGL4bxSCOq8IE4rhm4N8AAAD__xYadlY">