【发布时间】:2017-09-24 14:59:44
【问题描述】:
我想要一组 lambda,但要求不得复制 lambda,只能移动。
这是因为lambas 可能需要移动捕获它们的一些不可复制构造的参数。
例子:
NonCopyableType varName ;
auto func = [a=move(varName)](){ ... } ; //varName is move-captured
在此之后,我想将 func 存储在 vector 中,但我不能使用 std::function 类型,因为它要求 lambda 是可复制的。
vector<function<void()>> list ;
list.push_back(func) ; //won't work
是否可以通过其他方式做到这一点?
【问题讨论】:
标签: c++ lambda c++14 move-semantics