首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >boost::scoped_ptr<T>与std::unique_ptr<T>的区别

boost::scoped_ptr<T>与std::unique_ptr<T>的区别
EN

Stack Overflow用户
提问于 2011-11-20 14:07:49
回答 1查看 31.6K关注 0票数 62

boost::scoped_ptr<T>std::unique_ptr<T>之间的唯一区别是std::unique_ptr<T>有移动语义,而boost::scoped_ptr<T>只是一个get/reset智能指针吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-20 14:13:18

不,但这是最重要的区别。

另一个主要区别是,与shared_ptr类似,unique_ptr可以有一个析构函数对象。与shared_ptr不同,析构函数类型是unique_ptr类型的一部分(就像分配器是STL容器类型的一部分一样)。

const unique_ptr可以有效地完成scoped_ptr可以完成的大部分工作;实际上,与scoped_ptr不同的是,const unique_ptr不能通过reset调用进行反弹。

此外,unique_ptr<T>可以在不完整类型的T上工作。当您对unique_ptr执行任何可能调用该删除器的操作时,默认的删除器类型要求T是完整的。因此,根据情况,您可以自由地玩游戏,了解发生这种情况的地点。

票数 51
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8199812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档