Code Bye

怎么取得shared_ptr中的raw pointer又不释放这个raw pointer

shared_ptr<int> sp(new int());
int* p=sp.get();
sp.reset();
这样貌似p还是会被释放.
解决方案

40

shared_ptr 是要被多处共享的,在最后一个释放后释放。这样拿一个 raw pointer 出来是要干什么?貌似与 share_ptr 语义不符,是不是应该考虑换一个 …

unique_ptr 有 release().

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明怎么取得shared_ptr中的raw pointer又不释放这个raw pointer