我的問題是,如何故障保護下面的代碼片段是我的資源管理器的一部分:安全
bool Load(std::string name, boost::shared_ptr<Asset::Model>& newModel)
{
std::map<std::string, boost::scoped_ptr<Asset::Model> >::const_iterator seeker;
seeker = models.find(name);
if (seeker == models.end())
return false;
newModel = seeker->second->Copy(); // Copy returns a boost::shared_ptr<Asset::Model>
return true;
}
private:
std::map< std::string, boost::scoped_ptr<Asset::Model> > models;
因爲通過引用傳遞Boost的shared_ptr的其實不是的一部分shared_ptr概念,如果我只在這個範圍內使用它,我會遇到麻煩嗎?
那麼我不想在加載失敗的情況下返回shared_ptr。這就是爲什麼我返回一個布爾 – cppanda 2011-01-22 17:12:16