关于c++智能指针源码实现的疑问

1.png2.png

源码如上,大家注意到,第一个函数比下面两个的实现多了一个 if (__tmp != _M_pi),为何下面两个函数就不用加呢?

按我的理解,下面两个函数加上那句判断也可以啊,求思路,有大兄弟了解的么?

阅读 1.9k
1 个回答

我的理解是:
if (__tmp != _M_pi) 是为了避免自赋值,自赋值又发生在形参是本身类型时。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进