std::shared_ptr is guaranteed to be thread-safe. I don\'t know what mechanism the typical implementations use to ensure this, but surely it must have some overhead.
std::shared_ptr