4

c ++ 11auto_ptrでは非推奨になり、より賢明なに置き換えられましたunique_ptr。悲しいかな、あなたboost::ptr_mapauto_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で動作する代替品はありますか?

4

1 に答える 1

8

どうですか

std::unique_ptr<Layer> pLayer(new Layer());
mFusedLayers.insert(fusedLayerName,pLayer.release());
于 2012-08-09T21:49:11.307 に答える