如何解释"const unique_ptr"?

10
const unique_ptr<int> upi{new int{4}};
cout << ++*upi << '\n';

看起来 upi 是一个 const 智能指针。它指向的 int 仍然可以被修改。如果我想将 int 声明为 const,该怎么办?

const unqiue_ptr<int> const upi{new int{4}};    //Error: duplicate const

unique_ptr 默认情况下不是 const。 - Daniel
2个回答

19

据我所了解,您想将整数变量设为const而不是指针本身,对吗?那么您需要编写以下代码:

unqiue_ptr<const int> upi{new int{4}}; 

18

如果有人想知道什么是const unique_ptr:

它是一个unique_ptr,在其生命周期内不会交换拥有的对象。

但是所拥有的对象并非const。因此,这是Pimpl技巧的绝佳选择。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接