diff --git a/InnerDetector/InDetDetDescr/InDetTrackingGeometry/src/SiLayerBuilder.cxx b/InnerDetector/InDetDetDescr/InDetTrackingGeometry/src/SiLayerBuilder.cxx index 2069c0d1f6b9fc11cef9f48785701a3bffc28576..16931a5316a957deb32295fb24386004fc1beca5 100755 --- a/InnerDetector/InDetDetDescr/InDetTrackingGeometry/src/SiLayerBuilder.cxx +++ b/InnerDetector/InDetDetDescr/InDetTrackingGeometry/src/SiLayerBuilder.cxx @@ -297,7 +297,7 @@ const std::vector< const Trk::CylinderLayer* >* InDet::SiLayerBuilder::cylindric const Trk::Surface* moduleSurface = takeIt ? (&((*sidetIter)->surface())) : (&(otherSide->surface())); // register the module surface - Trk::SharedObject<const Trk::Surface> sharedSurface(moduleSurface, [](const Trk::Surface*){}); + Trk::SharedObject<const Trk::Surface> sharedSurface(moduleSurface, Trk::do_not_delete<const Trk::Surface>); Trk::SurfaceOrderPosition surfaceOrder(sharedSurface, orderPosition); if (takeIt) (layerSurfaces[currentlayer]).push_back(surfaceOrder); diff --git a/InnerDetector/InDetDetDescr/InDetTrackingGeometry/src/TRT_LayerBuilder.cxx b/InnerDetector/InDetDetDescr/InDetTrackingGeometry/src/TRT_LayerBuilder.cxx index 5072915384a803c943184cb4cb3185771c44cd58..cd1269763638f11dd13ecd4f339d3e996bda77bd 100755 --- a/InnerDetector/InDetDetDescr/InDetTrackingGeometry/src/TRT_LayerBuilder.cxx +++ b/InnerDetector/InDetDetDescr/InDetTrackingGeometry/src/TRT_LayerBuilder.cxx @@ -364,7 +364,7 @@ const std::vector< const Trk::CylinderLayer* >* InDet::TRT_LayerBuilder::cylindr * The above line was using the nodel (not delete option for the old shared object * now that SharedObject is a shared_ptr typeded do the same with empty deleter */ - Trk::SharedObject<const Trk::Surface> sharedSurface(currentStraw, [](const Trk::Surface*){}); + Trk::SharedObject<const Trk::Surface> sharedSurface(currentStraw, Trk::do_not_delete<const Trk::Surface>); strawsPerPhiSecLayer.push_back(Trk::SurfaceOrderPosition(sharedSurface, strawOrderPos)); // and record ++sectorStraws; diff --git a/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/src/MuonTrackingGeometryBuilder.cxx b/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/src/MuonTrackingGeometryBuilder.cxx index 2b0b2a62de318cf80827180d54fa3323fe24904c..790575ad092b8c06df4573128bbe6847d5c26336 100644 --- a/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/src/MuonTrackingGeometryBuilder.cxx +++ b/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/src/MuonTrackingGeometryBuilder.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ ////////////////////////////////////////////////////////////////// @@ -1237,7 +1237,7 @@ const Trk::TrackingVolume* Muon::MuonTrackingGeometryBuilder::processVolume(cons /* The above was passing a SharedObject with the ndel == True * now that SharedObject is a typeded to std::shared_ptr , pass a no-op deleter */ - subVolumes.push_back(Trk::TrackingVolumeOrderPosition(Trk::SharedObject<const Trk::TrackingVolume>(sVol, [](const Trk::TrackingVolume*){}), + subVolumes.push_back(Trk::TrackingVolumeOrderPosition(Trk::SharedObject<const Trk::TrackingVolume>(sVol, Trk::do_not_delete<const Trk::TrackingVolume>), Amg::Vector3D(transf*gp))); //glue subVolumes sVols.push_back(sVol); @@ -1497,7 +1497,7 @@ const Trk::TrackingVolume* Muon::MuonTrackingGeometryBuilder::processVolume(cons Amg::Vector3D gp(0.5*(hSteps[h].second+hSteps[h+1].second),0.,0.); subVolumesVect.push_back(Trk::TrackingVolumeOrderPosition(Trk::SharedObject<const Trk::TrackingVolume>(sVol), Amg::Vector3D((*transf)*gp))); - hSubsTr.push_back(Trk::TrackingVolumeOrderPosition(Trk::SharedObject<const Trk::TrackingVolume>(sVol, [](const Trk::TrackingVolume*){}), + hSubsTr.push_back(Trk::TrackingVolumeOrderPosition(Trk::SharedObject<const Trk::TrackingVolume>(sVol, Trk::do_not_delete<const Trk::TrackingVolume>), Amg::Vector3D((*transf)*gp))); hSubs.push_back(sVol); @@ -1854,7 +1854,7 @@ const Trk::TrackingVolume* Muon::MuonTrackingGeometryBuilder::processShield(cons Amg::Vector3D gp(subBds->mediumRadius(),0.,0.); subVolumesVect.push_back(Trk::TrackingVolumeOrderPosition(Trk::SharedObject<const Trk::TrackingVolume>(sVol), Amg::Vector3D((*transf)*gp))); - hSubsTr.push_back(Trk::TrackingVolumeOrderPosition(Trk::SharedObject<const Trk::TrackingVolume>(sVol, [](const Trk::TrackingVolume*){}), + hSubsTr.push_back(Trk::TrackingVolumeOrderPosition(Trk::SharedObject<const Trk::TrackingVolume>(sVol, Trk::do_not_delete<const Trk::TrackingVolume>), Amg::Vector3D((*transf)*gp))); hSubs.push_back(sVol); diff --git a/Tracking/TrkDetDescr/TrkDetDescrTools/src/TrackingVolumeArrayCreator.cxx b/Tracking/TrkDetDescr/TrkDetDescrTools/src/TrackingVolumeArrayCreator.cxx index 02e779bdda8bd2ad8ea042dcea31dfe4ad598793..9988ba6f1c10281102492dda51cf402e015cd0db 100755 --- a/Tracking/TrkDetDescr/TrkDetDescrTools/src/TrackingVolumeArrayCreator.cxx +++ b/Tracking/TrkDetDescr/TrkDetDescrTools/src/TrackingVolumeArrayCreator.cxx @@ -115,7 +115,7 @@ Trk::TrackingVolumeArray* Trk::TrackingVolumeArrayCreator::cylinderVolumesArrayI volOrder.push_back(Trk::TrackingVolumeOrderPosition(Trk::SharedObject<const TrackingVolume>((*volIter)), Amg::Vector3D(currentCylBounds->mediumRadius(), 0.0, 0.0))); }else{ - volOrder.push_back(Trk::TrackingVolumeOrderPosition(Trk::SharedObject<const TrackingVolume>((*volIter), [](const TrackingVolume*){}), + volOrder.push_back(Trk::TrackingVolumeOrderPosition(Trk::SharedObject<const TrackingVolume>((*volIter), do_not_delete<const TrackingVolume>), Amg::Vector3D(currentCylBounds->mediumRadius(), 0.0, 0.0))); } @@ -198,7 +198,7 @@ Trk::TrackingVolumeArray* Trk::TrackingVolumeArrayCreator::cylinderVolumesArrayI Amg::Vector3D((*volIter)->center()))); } else{ - volOrder.push_back(Trk::TrackingVolumeOrderPosition(Trk::SharedObject<const TrackingVolume>((*volIter),[](const TrackingVolume*){}), + volOrder.push_back(Trk::TrackingVolumeOrderPosition(Trk::SharedObject<const TrackingVolume>((*volIter),do_not_delete<const TrackingVolume>), Amg::Vector3D((*volIter)->center()))); @@ -245,7 +245,7 @@ Trk::TrackingVolumeArray* Trk::TrackingVolumeArrayCreator::cylinderVolumesArrayI volOrder.push_back(Trk::TrackingVolumeOrderPosition(Trk::SharedObject<const TrackingVolume>((*volIter)), Amg::Vector3D(((*volIter)->transform())*gp))); }else{ - volOrder.push_back(Trk::TrackingVolumeOrderPosition(Trk::SharedObject<const TrackingVolume>((*volIter), [](const TrackingVolume*){}), + volOrder.push_back(Trk::TrackingVolumeOrderPosition(Trk::SharedObject<const TrackingVolume>((*volIter), do_not_delete<const TrackingVolume>), Amg::Vector3D(((*volIter)->transform())*gp))); } @@ -313,7 +313,7 @@ Trk::TrackingVolumeArray* Trk::TrackingVolumeArrayCreator::cylinderVolumesArrayI if(navtype==false){ volOrder.push_back(Trk::TrackingVolumeOrderPosition(Trk::SharedObject<const TrackingVolume>(vols[i]),ngp)); }else{ - volOrder.push_back(Trk::TrackingVolumeOrderPosition(Trk::SharedObject<const TrackingVolume>(vols[i],[](const TrackingVolume*){}),ngp)); + volOrder.push_back(Trk::TrackingVolumeOrderPosition(Trk::SharedObject<const TrackingVolume>(vols[i],do_not_delete<const TrackingVolume>),ngp)); } // push back volume position to avoid another loop volPos.push_back( std::pair< std::pair<double,int>, std::pair<double,double> > @@ -379,7 +379,7 @@ Trk::TrackingVolumeArray* Trk::TrackingVolumeArrayCreator::cylinderVolumesArrayI volOrder.push_back(Trk::TrackingVolumeOrderPosition(Trk::SharedObject<const TrackingVolume>(fullPhiVols[iv]),ngp)); } else{ - volOrder.push_back(Trk::TrackingVolumeOrderPosition(Trk::SharedObject<const TrackingVolume>(fullPhiVols[iv],[](const TrackingVolume*){}),ngp)); + volOrder.push_back(Trk::TrackingVolumeOrderPosition(Trk::SharedObject<const TrackingVolume>(fullPhiVols[iv],do_not_delete<const TrackingVolume>),ngp)); } // push back volume position to avoid another loop volPos.push_back(std::pair< std::pair<double,int>, std::pair<double,double> > @@ -474,7 +474,7 @@ Trk::TrackingVolumeArray* Trk::TrackingVolumeArrayCreator::cylinderVolumesArrayI if(navtype==false){ volOrder.push_back(Trk::TrackingVolumeOrderPosition(Trk::SharedObject<const TrackingVolume>(vols[i]),ngp)); }else{ - volOrder.push_back(Trk::TrackingVolumeOrderPosition(Trk::SharedObject<const TrackingVolume>(vols[i],[](const TrackingVolume*){}),ngp)); + volOrder.push_back(Trk::TrackingVolumeOrderPosition(Trk::SharedObject<const TrackingVolume>(vols[i],do_not_delete<const TrackingVolume>),ngp)); } // push back volume position to avoid another loop volPos.push_back(std::pair<double,std::pair<double,double> >(cyl->mediumRadius(),std::pair<double,double>(ngp.phi(),dphi))); @@ -624,7 +624,7 @@ Trk::TrackingVolumeArray* Trk::TrackingVolumeArrayCreator::cylinderVolumesArrayI if(navtype==false){ volOrder.push_back(Trk::TrackingVolumeOrderPosition(Trk::SharedObject<const TrackingVolume>(vols[i]),ngp)); }else{ - volOrder.push_back(Trk::TrackingVolumeOrderPosition(Trk::SharedObject<const TrackingVolume>(vols[i], [](const TrackingVolume*){}),ngp)); + volOrder.push_back(Trk::TrackingVolumeOrderPosition(Trk::SharedObject<const TrackingVolume>(vols[i], do_not_delete<const TrackingVolume>),ngp)); } // push back volume position to avoid another loop volPos.push_back(std::pair<float,std::pair<float,float> >(vols[i]->center()[2],std::pair<float,float>(ngp.phi(),dphi))); @@ -761,7 +761,7 @@ Trk::TrackingVolumeArray* Trk::TrackingVolumeArrayCreator::cuboidVolumesArrayNav if(navtype==false){ volOrder.push_back(Trk::SharedObject<const TrackingVolume>((*volIter))); }else{ - volOrder.push_back(Trk::SharedObject<const TrackingVolume>((*volIter), [](const TrackingVolume*){})); + volOrder.push_back(Trk::SharedObject<const TrackingVolume>((*volIter), do_not_delete<const TrackingVolume>)); } } if (volOrder.size()) { @@ -795,7 +795,7 @@ Trk::TrackingVolumeArray* Trk::TrackingVolumeArrayCreator::trapezoidVolumesArray volOrder.push_back(Trk::SharedObject<const TrackingVolume>(*volIter)); }else { - volOrder.push_back(Trk::SharedObject<const TrackingVolume>(*volIter,[](const TrackingVolume*){})); + volOrder.push_back(Trk::SharedObject<const TrackingVolume>(*volIter,do_not_delete<const TrackingVolume>)); } } if (volOrder.size()) { @@ -829,7 +829,7 @@ Trk::TrackingVolumeArray* Trk::TrackingVolumeArrayCreator::doubleTrapezoidVolume volOrder.push_back(Trk::SharedObject<const TrackingVolume>((*volIter))); } else{ - volOrder.push_back(Trk::SharedObject<const TrackingVolume>((*volIter),[](const TrackingVolume*){})); + volOrder.push_back(Trk::SharedObject<const TrackingVolume>((*volIter),do_not_delete<const TrackingVolume>)); } } if (volOrder.size()) { diff --git a/Tracking/TrkDetDescr/TrkDetDescrUtils/TrkDetDescrUtils/SharedObject.h b/Tracking/TrkDetDescr/TrkDetDescrUtils/TrkDetDescrUtils/SharedObject.h index 458d61da33e6ae4a25c69034c914628ae427098e..c579508515afda5637c288d100f9988e454a5b7a 100755 --- a/Tracking/TrkDetDescr/TrkDetDescrUtils/TrkDetDescrUtils/SharedObject.h +++ b/Tracking/TrkDetDescr/TrkDetDescrUtils/TrkDetDescrUtils/SharedObject.h @@ -23,6 +23,9 @@ namespace Trk { template <class T> using SharedObject = std::shared_ptr<T>; +template<typename T> +auto do_not_delete = [](T*){}; + } // end of namespace diff --git a/Tracking/TrkDetDescr/TrkGeometry/src/MaterialLayer.cxx b/Tracking/TrkDetDescr/TrkGeometry/src/MaterialLayer.cxx index 9e4bc65fa3fa410da6339a5c6250f8d9e690b11e..f36c9f516e83877181fa1432a4f26d2f18f89793 100644 --- a/Tracking/TrkDetDescr/TrkGeometry/src/MaterialLayer.cxx +++ b/Tracking/TrkDetDescr/TrkGeometry/src/MaterialLayer.cxx @@ -22,7 +22,7 @@ Trk::MaterialLayer::MaterialLayer(const Surface& surfaceRepresentation, * Probably ownership might need some clean up here */ m_surfaceRepresentation(SharedObject<const Surface>(&surfaceRepresentation, - [](const Surface*) {})) + do_not_delete<const Surface>)) { m_layerMaterialProperties.reset(mlprop.clone()); m_layerThickness = 1.;