相关疑难解决方法(0)

std :: function的仅移动版本

因为std::function是可复制的,所以标准要求用于构造它的callables也是可复制的:

n337(20.8.11.2.1)

template<class F> function(F f);

要求:F应为CopyConstructible.f对于参数类型ArgTypes和返回类型,应为Callable(20.8.11.2)R.A的拷贝构造函数和析构函数不会抛出异常

这意味着不可能std::function从不可复制的绑定对象或捕获仅移动类型的lambda形成std::unique_ptr.

似乎可以为仅移动的callables实现这样一个仅移动的包装器.是否存在标准库仅限移动等效std::function或者,是否存在针对此问题的常见解决方法?

c++ move-semantics c++11

51
推荐指数
3
解决办法
6242
查看次数

标签 统计

c++ ×1

c++11 ×1

move-semantics ×1