我走过一段cpp的代码,并有以下问题(几乎没有接触到Boost库)升压使用情况make_shared
bool xxxx::calcYYY()
{
bool retStatus = false;
boost::shared_ptr<DblMatrix> price = boost::make_shared<DblMatrix>(xxx, xxx);
.....
retStatus = true;
}
return retStatus;
}
为什么实体化本地范围的指针作为共享?
在高性能代码中,必须有额外的开销来维护引用计数。
这里正确地做到这一点的助推替代方法是什么?
没有看到更多的功能,我们怎么能确切地告诉你?指针是否传递给其他函数?其中一个可能是调用别的东西,那个股权?我们不知道。 – StoryTeller
没有足够的上下文来说什么。什么是'xxx'和'xxx'? '.....'会发生什么? –
是存储在某个地方的价格,还是仅仅用于倾销?如果它很大并存储在某个地方供以后多个使用者使用,那么shared_ptr是适当的。如果它被使用一次并立即销毁,那么你可以简单地将它构建在堆栈上。 –