Domanda

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?

È stato utile?

Soluzione

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top