【发布时间】:2015-03-16 17:14:07
【问题描述】:
auto_ptr 的大小是否与指针相同?
我必须用boost::scoped_ptr 替换它,我想知道这两种数据类型是否具有相同的大小。
【问题讨论】:
-
你为什么不直接打印 sizeof 呢? PS。它不仅仅是一个指针,因为它需要一个引用计数器
-
"我想知道这两种数据类型是否具有相同的大小。" – 为什么需要此信息才能将其更改为
boost::scoped_ptr? -
@texasbruce:
auto_ptr和scoped_ptr都不是引用计数的。shared_ptr是,但必须将引用计数存储在单独的共享数据结构中,而不是指针对象本身。它们中的任何一个都不需要包含多个指针。 -
@MikeSeymour
shared_ptr实际上通常包含两个指针 - 一个指向引用计数块,一个指向get()的返回值,它可以与它管理的生命周期完全无关。 -
为什么我们还在谈论
auto_ptr?std::unique_ptr更好,搜索销毁auto_ptr。
标签: c++ pointers smart-pointers auto-ptr