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

Mar*_*tin 4 c++ boost c++11

在c ++ 11 auto_ptr中,不推荐使用并且更加明智unique_ptr.唉,如果你使用boost::ptr_mapauto_ptr满足一个非常方便的使用方法:

std::auto_ptr<Layer> pLayer(new Layer());
mRawLayerPtrMap.insert(layerName,pLayer);
Run Code Online (Sandbox Code Playgroud)

是否有可能使用与c ++ 11类似的东西.我知道

Layer* pLayer = new Layer();
mFusedLayers.insert(fusedLayerName,pLayer);
Run Code Online (Sandbox Code Playgroud)

虽然auto_ptr有所作为,但它在一些更复杂的场景中有其优点.是否有适用于C++ 11的替代品?

Ben*_*igt 8

怎么样

std::unique_ptr<Layer> pLayer(new Layer());
mFusedLayers.insert(fusedLayerName,pLayer.release());
Run Code Online (Sandbox Code Playgroud)