const unique_ptr<int> upi{new int{4}};
cout << ++*upi << '\n';
似乎
upi
是一个const smart pointer
。它指向的int
仍然可以修改。如果我想将 int
声明为 const
怎么办?
const unqiue_ptr<int> const upi{new int{4}}; //Error: duplicate const
以防万一有人想知道 const unique_ptr 是什么: 它是一个 unique_ptr,在其生命周期内不会交换所拥有的对象。 然而,拥有的对象不是 const。因此,它是 Pimpl 习语的绝佳候选者
据我了解,你想要的是整数
const
而不是指针本身,对吧?那么你必须写:
unique_ptr<const int> upi{new int{4}};