C++ std::shared_ptr wrapper that guarantees non-nullness