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

 

作者:
该日志由 csdn-whinah 于2011年06月17日发表在C++分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
转载请注明: gcc C++0x unique_ptr 实现太龌龊了
标签:
【上一篇】
【下一篇】

您可能感兴趣的文章:

2 个回复

  1. zy498420说道:

    帅哥如果你这一点空间都觉得大的话,不妨去看一下gcc下成员函数指针的大小是多少,呵呵。

  2. whinah说道:

    关键是"有无必要",C++的设计哲学是"不为不使用的feature付出代价"

发表评论

您必须 登录 后才能发表评论。