std::unique_ptr 转移常量对象的所有权

std::unique_ptr to transfer ownership of a const object

我在一个方法中创建了一个 class A 的对象。此方法还创建对象 B 的实例,该实例将刚刚创建的对象 A 作为构造函数参数。 B 必须取得对象 A 的所有权,但不能修改它。这意味着 A 应该在删除 B 时被删除,但是在 B 的生命周期内它不能修改 A.

在这种情况下,std::unique_ptr<const A> 作为 B 的成员变量是转移 A 所有权的正确方法(在 [ 的构造函数中使用 std::move =12=]) 并保证不被修改?

是的,这正是您正在寻找的语义。 std::unique_ptr<T> 状态 "I own the T object." 指向 const A 状态的指针(原始或智能)"I cannot modify the A to which I point." 合在一起,这正是您所追求的。