<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/149746>149746</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
CTAD fails for a trailing sub-aggregate with a base that is a pack expansion
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
TubbytheTuba
</td>
</tr>
</table>
<pre>
CTAD fails for a trailing sub-aggregate with a base that is a pack expansion. clang (x86-64 clang 20.1.0 and trunk) fails to compile but gcc (x86-64 gcc 15.1) does not. [godbolt link](https://godbolt.org/z/5rEq399hM).
```
#include <iostream>
template <typename T, typename... U>
struct L1
{
T dm1;
struct A1 : U...
{
using U::operator()...;
} a11;
// expected aggregate deduction candidate:
// template <typename T, typename... U>
// L1(T, U...) -> L1<T, U...>
};
int main()
{
auto l11 = L1
{
0,
[](char c) { std::cout << 1 << std::endl; },
[](bool b) { std::cout << 2 << std::endl; }
};
l11.a11('a');
l11.a11(true);
}
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJysVM2OozgQfpriUoplbH7iAweSdE6zt_QDGOyAtw3OYntmep9-5UAn03NoaaWJIkH9feXvK1PSezPMWjdQHqA8ZTKG0S3NJXbdexj1JXYy65x6b46X9oRXaazHq1tQYliksWYe0MduJ4dh0YMMGn-YMKLETnqNYZQBjUeJN9m_of55k7M3bibYWzkPCGz_c1_tqmKzGSU5oShnhWGJ8xswsbUMDns33YzV2MWAQ9__UpysvCR5SldOe5xdIAjlYXCqczagNfMblCdg-zGEmwfeAjsDO29x4pYB2PlfYOdyefmHCzH-BUwQoC1UdPvTFhg3c2-j0gj8aJwPi5YT8JcUo23Q080mBYAfw_tNz3LSeAF2xA-LEIKva74PS-wDfstTbX0A2iIiXlBNOfDDCpg8W16bI_AWXwkhW-BZlH7Rp0G8JmK8dTe9yOAWYPvEgpAVca06ocw_t1ilSMPRfdAKn6NUWsU-GDdjL2dllAw6dfhU9r9YfxR9y4Ht70l3RkzgDvhLcvPj070KW58epzVzwEmaeSX2STkZg0ObJ5lOq6q_KUSBHX8x19sObN-PcsE-HQHqA_qgVg17F0OiBPyI-cfLI6pnZYEfkpwb7AOvc85i9yUe-xLvMajn1GyekzS1RLuWwOrEfo0-Q2GJ-uFfgR6XN1MNV4ILmekmr0tOy0IIkY3NvipUJTrKr7KmWgmhWFnRgpVaCqmrKjMNo6ykNaOMFzwXhO1rnXciV5WorjXVUFA9SWOJtd-n9CFlxvuom7wQdVFlVnba-vtyYWzWP_AeBcbSrlmaVLTr4uChoNb44J8wwQSr_-jWyeJim98WgAlj7EjvJmDn1Hp77G6L-1v3Adj5fmAP7Lwx-t6w_wIAAP__sJ56IA">