私の質問は、私のリソースマネージャーの一部である次のコードスニペットがどのようにフェイルセーフであるかということです。
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の概念の一部ではないため、このスコープでのみ使用すると、問題が発生する可能性がありますか?