https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101243
--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Nathan Sidwell from comment #3) > pr.cc:71:22: error: use of deleted function 'FOO::FOO(const FOO&)' > pr.cc:59:3: note: declared here Maybe I'm missing the point of the code, but this is expected, isn't it? std::function cannot store move-only callables, it requires them to be copyable.