在将lambda转换为
std :: function
时,被捕获的参数是否会被复制?我需要将一个捕获非可复制类型的lambda转换为std :: function
。因此,我将一个lambda作为右值传递给了std :: function
,但出现了错误。// Foo is non-copyable.
auto a = [f = Foo()]{ };
std::function<void()> b = std::move(a) // error, calls deleted Foo::Foo(const Foo&);