Frage

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?

War es hilfreich?

Lösung

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top