<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">