【问题标题】:Why doesn't this time_zone_ptr example contain a memory leak?为什么这个 time_zone_ptr 示例不包含内存泄漏?
【发布时间】:2013-06-27 21:35:06
【问题描述】:

我正在阅读 boost DateTime 库 here,其中包含很多示例,例如:

time_zone_ptr zone(new posix_time_zone("MST-07"));

我很好奇为什么使用关键字“new”不会导致内存泄漏? 我调查了 boost 源代码,发现它有两个不同版本的构造函数,一个带有 shared_ptr,另一个使用 weak_ptr。有人可以解释一下这些是如何工作的,以及为什么上面的行可以安全编写吗?

【问题讨论】:

    标签: c++ datetime boost timezone weak-ptr


    【解决方案1】:

    time_zone_ptr 只是boost::shared_ptr<time_zone> 的别名。这是一个智能指针,它获取动态分配对象的所有权,来自构造它的原始指针。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-04
      • 2016-08-03
      • 2012-05-02
      • 2012-02-20
      • 2015-07-18
      • 2013-03-23
      相关资源
      最近更新 更多