<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/140519>140519</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Clang 20 breaks deduction for function templates with variadic template template arguments used in the return type
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
viccie30
</td>
</tr>
</table>
<pre>
A [test in Catch2](https://github.com/catchorg/Catch2/blob/74fcff6e5b190fb833a231b7f7c1829e3c3ac54d/tests/SelfTest/UsageTests/Misc.tests.cpp#L387-L389) fails to build since Clang 20. I have reduced the issue to the difference in the treatment of the deduction of variadic template template arguments. You can see the issue on Godbolt: https://godbolt.org/z/4s8f6PzMa.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyMkkuPnTwMhn9N2FiDQkK4LFjMRXz6pBmpUqeLLk1wIG0OOUrCqWZ-fZVzaUddVF2BjR9sv34xRrtsRANTD0w9Fbin1YfhZLW2JHkx-fltuAemHhLFBHaDR0x6FUw9MdGtKR0jk_dMjEyMi03rPpXaH5gYdS7zYWFivBJinJyfmBjb2mhjGlJT1XMzdVKikNXUmlZXnehJaola1TMTY24amRg_kzOvFBMT45eIC71e8y826vJcVOrjkQn5LLv27ll2PRM9GLQuQvIw7dbNEO2mCR4dbgsIXsL_sOKJINC8a5ohrQQ2xp0ykYPZGkOBMmS3cyYFwnSgLYE3l5LMJuu3nDhhsDhbDYkOR4eJfr9gWPbMxRK--h00bhCJPrT0G_zn58m7xOQ9_KHr5UN5UfOdibGOnWk-vb9gWcyDnHvZY0FD1dZtU7eqr4t1oAYb2XdzW3Olhaiw0shr3hsuJWLTF3YQXCiuqp73sley5Fw30ihltFRN21Ws5nRA60rnTofcvDiPOlR1hgqHE7l49o0QOovKRLZFEYYM3E37ElnNnc3H-fWLZJOj4XYDmALh9_hBRuMDmH27BDf5Ivywaf0nfWGPNN_OFSjtYYP0dqRiD274i13zgNfH3TH4b6Sz184LZ59ddz4N4mcAAAD__7PjDKs">