No, it won't copy, because then the object would no longer be shared.
Also, no need for explicit call to get()
:
*ptr = 5;
This has no effect on refcount.
(To create a new shared object: ptr = boost::make_shared<int>(5)
)
题
Does boost::shared_ptr<int> ptr
makes a copy when
*ptr.get() = 5;
suppose, the refcount
was 3
, after the line above will it stay 3
? or what will happen? will the new object be allocated?
解决方案
No, it won't copy, because then the object would no longer be shared.
Also, no need for explicit call to get()
:
*ptr = 5;
This has no effect on refcount.
(To create a new shared object: ptr = boost::make_shared<int>(5)
)