我注意到一个关于 shared_ptr 的奇怪事实
int* p = nullptr;
std::shared_ptr<int> s(p); // create a count (1).
std::shared_ptr<int> s2(s); // count go to 2.
assert(s.use_count() == 2);
我想知道除此之外的语义是什么。为什么 s 和 s2 共享一个 nullptr ?这有什么意义吗?
或者也许这种不常见的情况不值得一个 if 语句(代价高昂?)?
感谢您的任何启发。