https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94453
ensadc at mailnesia dot com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ensadc at mailnesia dot com --- Comment #2 from ensadc at mailnesia dot com --- void *ay(); template <typename f> f ay() { return *static_cast<f *>(ay()); } template <typename h> void bf() { ay<h>()(); } struct az { template <typename h> az(h); using bk = void (*)(); bk bl; }; template <typename h> az::az(h) { bl = bf<h>; } struct A {}; void da(az); void di(A, int); void dk(A, az, az); void b() { int data = 0; auto n = [] {}; constexpr auto p = A{}; auto q = [=] { di(p, data); }; da([=] { dk(p, n, q); }); }