Given std::function is allowed to potentially allocate, these should be std::move'd to prevent potential reallocation (should that ever happen).
Given std::function is allowed to potentially allocate, these should be std::move'd to prevent potential reallocation (should that ever happen).