代码之家  ›  专栏  ›  技术社区  ›  pm100

共享ptr分配优化

  •  2
  • pm100  · 技术社区  · 15 年前

    我在某处看到一篇文章,介绍了一种创建boost共享的ptr的优化方法,这样它就可以同时分配ptr管道和指针对象。我找了这么多,但有 很多 的帖子,我找不到。请聪明人转寄一下好吗

    编辑:

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

    return FooPtr((Foo*)0);
    

    看起来有点难看

    1 回复  |  直到 15 年前
        1
  •  6
  •   Georg Fritzsche    15 年前

    boost::make_shared() :

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