是否有替换auto_ptr可以与c ++ 11中的boost ptr_map一起使用

时间:2012-08-09 21:42:07

标签: c++ boost c++11

在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的替换?

1 个答案:

答案 0 :(得分:8)

怎么样

std::unique_ptr<Layer> pLayer(new Layer());
mFusedLayers.insert(fusedLayerName,pLayer.release());