`
febird
  • 浏览: 246502 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

gcc C++0x unique_ptr 实现太龌龊了

 
阅读更多

版本:g++ 4.6.0

龌龊之处:

1. 占用 2 ptr 空间,因为 unique_ptr 要支持 custom delete, so g++ 要用额外的一个 ptr 来保存 custom 对象

为什么不用 empty base class 来优化? VC10 有这个优化。

2. 引入不必要的依赖,使用 tuple<T*, Deleter> 作为数据成员!

关 tuple 屌事?

明白了,使用 tuple 是因为 tuple 实现使用了 empty class optimization, 所以在使用 default deleter 时,只占用 1 ptr, Scott Meyer 说占用 2 ptr 的是 g++ 4.5

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics