.get() 和 -> 之间有智能指针的区别吗?



std::shared_ptrstd::unique_ptr的函数.get()operator->完全相同吗?

还是与std::vector.at()operator[]有区别?

具有相同的行为(在两种情况下operator->()被定义为返回get()),但operator->()具有get()必须不返回0的先决条件。

这意味着:

a.get();        // does not cause UB just because holds a null pointer
a.operator->(); // would cause UB if a.get() == 0

其中astd::unique_ptrstd::shared_ptr

相关内容

  • 没有找到相关文章

最新更新