The first mistake is using shared_ptr to begin with.  It&#x27;s often unnecessary (as the article says, one can often get away with using unique_ptr).  When a unique_ptr is not sufficient, a shared_ptr often obfuscates the true owner of the object.<p>Every object should have one true owner that manages its memory.  Anything else will lead to performance regressions and outright bugs.