pm1*_*100 2 c++ boost shared-ptr
在某个地方,我看到一篇关于创建boost shared_ptr的优化方法的帖子,以便它同时分配ptr管道和指针.我做了SO搜索,但是在shared_ptr 上有很多帖子,我找不到它.有人聪明,请重新发布
编辑:谢谢你的回答.额外的信用问题.什么是正确的(首选的?)习惯用于返回null shared_ptr?即
FooPtr Func()
{
if(some_bad_thing)
return xxx; // null
}
Run Code Online (Sandbox Code Playgroud)
对我来说
return FooPtr((Foo*)0);
Run Code Online (Sandbox Code Playgroud)
看起来有点笨拙
除了方便和风格之外,这样的函数也是异常安全且相当快的,因为它可以对对象及其相应的控制块使用单个分配,从而消除了shared_ptr的构造开销的很大一部分.这消除了关于shared_ptr的主要效率投诉之一.
归档时间: |
|
查看次数: |
484 次 |
最近记录: |