shared_ptr分配优化

时间:2010-09-24 22:38:54

标签: c++ boost shared-ptr

在某个地方,我看到一篇关于创建boost shared_ptr的优化方法的帖子,以便它同时分配ptr管道和指针。我做了SO搜索但是在shared_ptr上有很多的帖子,我找不到它。有人聪明,请重新发布

编辑: 谢谢你的回答。额外的信用问题。什么是正确的(首选的?)习惯用于返回null shared_ptr?即

FooPtr Func()
{
   if(some_bad_thing)
      return xxx; // null
}

给我

return FooPtr((Foo*)0);

看起来有点笨拙

1 个答案:

答案 0 :(得分:6)

请参阅boost::make_shared()

  

除了方便和风格之外,这样的函数也是异常安全且相当快的,因为它可以对对象及其相应的控制块使用单个分配,从而消除了shared_ptr的构造开销的很大一部分。这消除了关于shared_ptr的主要效率投诉之一。