https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95540
--- Comment #3 from Michael Bruck <bruck.michael at gmail dot com> --- I think you misread, I was complaining about it passing the closure to the traits/constructor/allocator. But if that is what was agreed upon... Can the closure object that is being passed to the constructor and allocator be used for anything? I am asking because I got it to pass nullptr with the code below. But if there is no legitimate use it might as well always pass a nullptr. template <pt::handle_t F()> struct foo_t { static auto test() { return F(); } }; using moo = foo_t<[]() -> pt::handle_t{ co_return; }>; ... int main { moo::test(); }