<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/111363>111363</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Clang++ fails to match template template parameters as function arguments
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
PiliLatiesa
</td>
</tr>
</table>
<pre>
Clang++ trunk started rejecting the following testcase (adapted from https://eel.is/c++draft/temp#arg.template-example-3). Clang 19 accepts it. It's a recent regression.
```c++
template <template <class, class...> class TT, class T1, class... Rest>
void f(TT<T1, Rest...> const &) {}
template <typename T1> struct A {};
int main()
{
A<int> a;
f(a); // bogus "no matching function for call to 'f'"
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxcU1-vuzYM_TTmxbqIOBTaBx7651aatIdp6hdwg6HZAkFJuNvv20-Utrd3UlUOwfY5tnM4RtuPIg1sDrA5ZTynmw_NH9bZ3zlZiZxdffurOToee6AD0AFTmMe_MSYOSVoM8peYZMce002w8875f-5vEpPhKAi05ZanJbYLfsBbSlMEvQc6A51FXG4j0Nms1dvAXQI6JxkmIM2hzxfoOMmH_MvD5ORDA-1yvEtCtUM2RqYU0aYcf0tAdUTGIEbGhEH6IDFaP-ZQnKDYP_6rYv09WNfTJxGCPr5j4zhGoCPeQZ7noD9XjJfL6xwv6j0G_5SYQH-upb-8bbED2l4uoI9r5BLwLObHmBCoAtoh1AeoT-9yfwj7NcnIgyx0-hNjCrNJuH9m6cN7oh0TDmxHoC3Q7vGlPuCKcA_6aMdFJfIrE-86eYnXB0Rc94RX388RgWj0OHAyt2XJ3TyaZP2InQ9o2DlMHoHqDqgGoifh6X9Tf5eYtY1ud3rHmTSqpq0uilKV2a2pmVi2RVfoK5Wdqja0UW1bsWrLThWmzmxDBZWqKGqlqNqoXFUl6ZJ2W6HKdLWBspCBrcud-xpyH_rMxjhLo5TSlc4cX8XF-80nMusFp8UEoVkSPq5zH6EsnI0pfpdINjn54YeOrYtL4_ex4GtZLzBx4EGShIgcv2fGoZ8HGVPM5uCan7bobbrN19z4Aei8cD8eH1Pwi9-AzvdeFuc82vlq6L8AAAD__-72JNk">