https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102567
--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Florian Weimer from comment #3) > Neither paper seems to cover a polymorphic function type that takes > ownership, though, so I don't quite see how these replace std::function. To be clear, std::move_only_function is exactly a polymorphic function type that takes ownership. Without the constraint that the target type it takes ownership of needs to be copy-constructible.