【发布时间】:2020-04-17 02:00:11
【问题描述】:
在将 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&);
【问题讨论】:
标签: c++ c++11 lambda std-function