我走過一段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是適當的。如果它被使用一次並立即銷燬,那麼你可以簡單地將它構建在堆棧上。 –