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)
)