使用std :: move初始化std :: unique_ptr

时间:2018-03-12 11:54:44

标签: c++ c++11

最近我看到了一些与此类似的C ++代码

class MyClass {
    public:
    MyClass(std::unique_ptr< MyType > myValue)
        : _myValue(std::move(myValue)) {}

    std::unique_ptr< MyType > _myValue;
};

这是初始化unique_ptr的正确方法吗?是不是显式的std :: move不必要?

1 个答案:

答案 0 :(得分:9)

是的,这是正确的。如果您删除move,编译器会抱怨unique_ptr中没有复制构造函数并拒绝您的代码。