如何解读 "const unique_ptr"

How to interpret a "const unique_ptr"

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

似乎 upiconst smart pointer。它指向的 int 仍然可以修改。如果我想将 int 声明为 const 怎么办?

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

据我了解,您想要生成整数 const 而不是指针本身,对吧?那么你必须写:

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

以防万一有人想知道 const unique_ptr 是什么: 它是一个 unique_ptr ,在其生命周期内不会交换拥有的对象。 但是,拥有的对象不是 const。因此,Pimpl 成语的绝佳候选者