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
答案 0 :(得分:6)
据我了解,你想要整数const
而不是指针本身,对吧?然后你必须写:
unqiue_ptr<const int> upi{new int{4}};
答案 1 :(得分:2)
以防万一有人想知道什么是const unique_ptr: 它是unique_ptr,在其生存期内不会交换拥有的对象。 但是,拥有的对象不是const。因此,皮普尔成语的绝佳候选人