最近我看到了一些与此类似的C ++代码
class MyClass {
public:
MyClass(std::unique_ptr< MyType > myValue)
: _myValue(std::move(myValue)) {}
std::unique_ptr< MyType > _myValue;
};
这是初始化unique_ptr的正确方法吗?是不是显式的std :: move不必要?
答案 0 :(得分:9)
是的,这是正确的。如果您删除move
,编译器会抱怨unique_ptr
中没有复制构造函数并拒绝您的代码。