Software Development, Software Performance.
things and roll your own? Probably not — shared_ptr does its job about as well as it can be done. The better advice is to use the abstractions you need and avoid expensive abstractions if cheaper ones will do the job. For instance, a class with five shared_ptr members raises an immediate question: