class MoveOnlyOperation
{
public:
MoveOnlyOperation() = default;
MoveOnlyOperation(const MoveOnlyOperation&) = delete;
MoveOnlyOperation(MoveOnlyOperation&&) = default;
int operator()()
{
return 0;
}
};
我想像这样在 packaged_task 中包装一个对象实例:
std::packaged_task<void()> task(MoveOnlyOperation{});
我收到“error C2280: 'MoveOnlyOperation::MoveOnlyOperation(const MoveOnlyOperation &)': attempting to reference a deleted function”
C++ 11 的文档说可以完美转发 packaged_task 中的实例。我对 clang 也没有问题。
它有一些实现定义了关于如何实现 packaged_task 或 VS 2015 中的一个错误(可能在以后因为我遇到了与 http://rextester.com/WBEH22233 相同的问题)
最佳答案
关于c++ - 为什么需要在 VS 中为 packaged_task 复制构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48995633/