https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110853
--- Comment #8 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Patrick Palka from comment #6) > (In reply to Jonathan Wakely from comment #5) > > This is a regression caused by the new concepts-based constructor > > constraints in gcc 12. > And the analogous std::tuple example started failing after r13-54 (with > -std=c++17). Ugh, so it does: #include <tuple> void func() {} std::tuple t(func); std::tuple<void (*)()>& r = t; r13-54 was backported as r12-8379 so this fails since 12.2