在c ++ 11中,auto_ptr
已被弃用,并被更明智的unique_ptr
取代。唉,如果你使用boost::ptr_map
auto_ptr
实现了非常方便的使用:
std::auto_ptr<Layer> pLayer(new Layer());
mRawLayerPtrMap.insert(layerName,pLayer);
是否有可能使用与c ++ 11类似的东西。 我知道
Layer* pLayer = new Layer();
mFusedLayers.insert(fusedLayerName,pLayer);
有效,但auto_ptr
在一些更复杂的场景中有它的优点。
是否有适用于C ++ 11的替换?
答案 0 :(得分:8)
怎么样
std::unique_ptr<Layer> pLayer(new Layer());
mFusedLayers.insert(fusedLayerName,pLayer.release());