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

你可能感兴趣的:(unique)