From 6d24a38a42c0a0fcc388e795fb81abc6ae9b31fa Mon Sep 17 00:00:00 2001
From: Victor Poughon <victor.poughon@cnes.fr>
Date: Thu, 7 Jun 2018 18:35:00 +0200
Subject: [PATCH] ENH: Replace comments by '= delete'

---
 .../ChangeDetectionFrameworkExample.cxx       |  4 ++--
 .../LAIAndPROSAILToSensorResponse.cxx         |  8 +++----
 .../CurlAdapters/include/otbCurlHelper.h      |  4 ++--
 .../include/otbCurlHelperInterface.h          |  4 ++--
 .../CurlAdapters/include/otbCurlHelperStub.h  |  4 ++--
 .../include/otbDEMConvertAdapter.h            |  4 ++--
 .../include/otbDateTimeAdapter.h              |  4 ++--
 .../include/otbEllipsoidAdapter.h             |  4 ++--
 .../include/otbFilterFunctionValues.h         |  4 ++--
 .../otbGeometricSarSensorModelAdapter.h       |  4 ++--
 .../include/otbImageKeywordlist.h             |  2 +-
 .../include/otbMapProjectionAdapter.h         |  4 ++--
 .../include/otbPlatformPositionAdapter.h      |  4 ++--
 .../include/otbRPCSolverAdapter.h             |  8 +++----
 .../include/otbSarSensorModelAdapter.h        |  4 ++--
 .../include/otbSensorModelAdapter.h           |  4 ++--
 .../otbComplexToIntensityImageFilter.h        |  4 ++--
 .../otbComplexToVectorImageCastFilter.h       |  4 ++--
 .../Common/include/otbConfigurationManager.h  |  8 +++----
 .../Common/include/otbDecimateImageFilter.h   |  4 ++--
 .../Common/include/otbDotProductImageFilter.h |  4 ++--
 .../include/otbExtendedFilenameHelper.h       |  4 ++--
 .../Common/include/otbFunctionToImageFilter.h |  4 ++--
 .../otbImageAndVectorImageOperationFilter.h   |  4 ++--
 .../otbImageRegionAdaptativeSplitter.h        |  4 ++--
 ...RegionNonUniformMultidimensionalSplitter.h |  4 ++--
 .../otbImageRegionSquareTileSplitter.h        |  4 ++--
 .../include/otbImageRegionTileMapSplitter.h   |  4 ++--
 ...otbImageToModulusAndDirectionImageFilter.h |  4 ++--
 .../otbImaginaryImageToComplexImageFilter.h   |  4 ++--
 .../Common/include/otbImportImageFilter.h     |  4 ++--
 .../include/otbImportVectorImageFilter.h      |  4 ++--
 Modules/Core/Common/include/otbLogger.h       |  4 ++--
 .../Common/include/otbModelComponentBase.h    |  4 ++--
 .../include/otbQuaternaryFunctorImageFilter.h |  4 ++--
 .../Common/include/otbRGBAPixelConverter.h    | 12 +++++-----
 Modules/Core/Common/include/otbRectangle.h    |  4 ++--
 .../include/otbUnaryFunctorImageFilter.h      |  4 ++--
 ...naryFunctorNeighborhoodVectorImageFilter.h |  4 ++--
 .../otbUnaryFunctorVectorImageFilter.h        |  4 ++--
 ...unctorWithIndexWithOutputSizeImageFilter.h |  4 ++--
 .../otbVariableLengthVectorConverter.h        | 24 +++++++++----------
 .../include/otbVectorImageToASImageAdaptor.h  |  4 ++--
 .../Core/ImageBase/include/otbExtractROI.h    |  4 ++--
 .../ImageBase/include/otbExtractROIBase.h     |  4 ++--
 Modules/Core/ImageBase/include/otbImage.h     |  2 +-
 .../include/otbImageFunctionAdaptor.h         |  4 ++--
 .../Core/ImageBase/include/otbImageIOBase.h   |  4 ++--
 ...otbImageOfVectorsToMonoChannelExtractROI.h |  4 ++--
 .../ImageBase/include/otbMetaImageFunction.h  |  4 ++--
 .../include/otbMultiChannelExtractROI.h       |  4 ++--
 .../include/otbMultiToMonoChannelExtractROI.h |  4 ++--
 .../Core/ImageBase/include/otbVectorImage.h   |  4 ++--
 .../include/otbBCOInterpolateImageFunction.h  | 12 +++++-----
 .../otbBSplineDecompositionImageFilter.h      |  4 ++--
 .../otbBSplineInterpolateImageFunction.h      |  4 ++--
 .../otbGenericInterpolateImageFunction.h      |  4 ++--
 .../otbProlateInterpolateImageFunction.h      |  4 ++--
 ...owedSincInterpolateImageBlackmanFunction.h |  4 ++--
 ...ndowedSincInterpolateImageCosineFunction.h |  4 ++--
 ...WindowedSincInterpolateImageFunctionBase.h |  4 ++--
 ...owedSincInterpolateImageGaussianFunction.h |  4 ++--
 ...dowedSincInterpolateImageHammingFunction.h |  4 ++--
 ...dowedSincInterpolateImageLanczosFunction.h |  4 ++--
 ...indowedSincInterpolateImageWelchFunction.h |  4 ++--
 .../include/otbAttributesMapLabelObject.h     |  4 ++--
 ...tbAttributesMapLabelObjectWithClassLabel.h |  4 ++--
 .../otbAttributesMapOpeningLabelMapFilter.h   |  4 ++--
 ...bBandsStatisticsAttributesLabelMapFilter.h |  4 ++--
 .../otbImageToLabelMapWithAttributesFilter.h  |  4 ++--
 .../otbKMeansAttributesLabelMapFilter.h       |  4 ++--
 ...bLabelImageToLabelMapWithAdjacencyFilter.h |  4 ++--
 .../otbLabelMapFeaturesFunctorImageFilter.h   |  4 ++--
 .../Core/LabelMap/include/otbLabelMapSource.h |  4 ++--
 .../include/otbLabelMapToLabelImageFilter.h   |  4 ++--
 .../include/otbLabelMapToSampleListFilter.h   |  4 ++--
 .../include/otbLabelMapWithAdjacency.h        |  4 ++--
 ...MapWithClassLabelToClassLabelImageFilter.h |  4 ++--
 ...pWithClassLabelToLabeledSampleListFilter.h |  4 ++--
 .../otbMinMaxAttributesLabelMapFilter.h       |  4 ++--
 .../otbNormalizeAttributesLabelMapFilter.h    |  4 ++--
 .../otbShapeAttributesLabelMapFilter.h        |  4 ++--
 .../otbStatisticsAttributesLabelMapFilter.h   |  4 ++--
 .../otbDefaultImageMetadataInterface.h        |  4 ++--
 .../otbDefaultImageMetadataInterfaceFactory.h |  4 ++--
 .../otbFormosatImageMetadataInterface.h       |  4 ++--
 ...otbFormosatImageMetadataInterfaceFactory.h |  4 ++--
 .../include/otbIkonosImageMetadataInterface.h |  4 ++--
 .../otbIkonosImageMetadataInterfaceFactory.h  |  4 ++--
 .../include/otbImageMetadataInterfaceBase.h   |  4 ++--
 .../otbImageMetadataInterfaceFactory.h        |  4 ++--
 .../otbOpticalDefaultImageMetadataInterface.h |  4 ++--
 ...icalDefaultImageMetadataInterfaceFactory.h |  4 ++--
 .../otbOpticalImageMetadataInterface.h        |  4 ++--
 .../otbOpticalImageMetadataInterfaceFactory.h |  4 ++--
 .../otbPleiadesImageMetadataInterface.h       |  4 ++--
 ...otbPleiadesImageMetadataInterfaceFactory.h |  4 ++--
 .../otbQuickBirdImageMetadataInterface.h      |  4 ++--
 ...tbQuickBirdImageMetadataInterfaceFactory.h |  4 ++--
 .../otbRadarsat2ImageMetadataInterface.h      |  8 +++----
 ...tbRadarsat2ImageMetadataInterfaceFactory.h |  4 ++--
 .../include/otbSarCalibrationLookupData.h     |  4 ++--
 .../otbSarDefaultImageMetadataInterface.h     |  4 ++--
 ...bSarDefaultImageMetadataInterfaceFactory.h |  4 ++--
 .../include/otbSarImageMetadataInterface.h    |  4 ++--
 .../otbSarImageMetadataInterfaceFactory.h     |  4 ++--
 .../otbSentinel1ImageMetadataInterface.h      |  8 +++----
 ...tbSentinel1ImageMetadataInterfaceFactory.h |  4 ++--
 .../include/otbSpot6ImageMetadataInterface.h  |  4 ++--
 .../otbSpot6ImageMetadataInterfaceFactory.h   |  4 ++--
 .../include/otbSpotImageMetadataInterface.h   |  4 ++--
 .../otbSpotImageMetadataInterfaceFactory.h    |  4 ++--
 .../otbTerraSarImageMetadataInterface.h       |  4 ++--
 ...otbTerraSarImageMetadataInterfaceFactory.h |  4 ++--
 .../otbWorldView2ImageMetadataInterface.h     |  4 ++--
 ...bWorldView2ImageMetadataInterfaceFactory.h |  4 ++--
 .../Core/ObjectList/include/otbImageList.h    |  4 ++--
 .../ObjectList/include/otbImageListSource.h   |  4 ++--
 .../include/otbImageListToImageFilter.h       |  4 ++--
 .../otbImageListToImageListApplyFilter.h      |  4 ++--
 .../include/otbImageListToImageListFilter.h   |  4 ++--
 .../include/otbImageListToSingleImageFilter.h |  4 ++--
 .../include/otbImageListToVectorImageFilter.h |  4 ++--
 .../include/otbImageToImageListFilter.h       |  4 ++--
 .../Core/ObjectList/include/otbObjectList.h   |  4 ++--
 .../ObjectList/include/otbObjectListSource.h  |  4 ++--
 .../include/otbObjectListToObjectListFilter.h |  4 ++--
 .../otbUnaryFunctorObjectListBooleanFilter.h  |  4 ++--
 .../include/otbUnaryFunctorObjectListFilter.h |  4 ++--
 .../include/otbVectorImageToImageListFilter.h |  4 ++--
 .../include/otbImageToPointSetFilter.h        |  4 ++--
 .../include/otbPointSetAndValuesFunction.h    |  4 ++--
 .../PointSet/include/otbPointSetExtractROI.h  |  4 ++--
 .../PointSet/include/otbPointSetFunction.h    |  4 ++--
 .../Core/PointSet/include/otbPointSetSource.h |  4 ++--
 .../include/otbPointSetToPointSetFilter.h     |  4 ++--
 .../include/otbRandomPointSetSource.h         |  4 ++--
 .../otbThresholdImageToPointSetFilter.h       |  4 ++--
 .../include/otbTransformPointSetFilter.h      |  4 ++--
 .../include/otbDrawLineSpatialObjectFilter.h  |  4 ++--
 .../otbDrawLineSpatialObjectListFilter.h      |  4 ++--
 .../otbImageToLineSpatialObjectListFilter.h   |  4 ++--
 .../include/otbLineSpatialObject.h            |  4 ++--
 .../include/otbLineSpatialObjectList.h        |  4 ++--
 ...otbLineSpatialObjectListToPointSetFilter.h |  4 ++--
 .../include/otbSpatialObjectSource.h          |  4 ++--
 .../otbSpatialObjectToImageDrawingFilter.h    |  4 ++--
 .../otbPersistentFilterStreamingDecorator.h   |  4 ++--
 .../include/otbPersistentImageFilter.h        |  4 ++--
 .../otbPipelineMemoryPrintCalculator.h        |  4 ++--
 .../include/otbStreamingImageVirtualWriter.h  |  4 ++--
 .../Streaming/include/otbStreamingManager.h   |  4 ++--
 .../Transform/include/otbCompositeTransform.h |  4 ++--
 .../Transform/include/otbForwardSensorModel.h |  4 ++--
 .../include/otbGenericMapProjection.h         |  4 ++--
 .../Transform/include/otbGenericRSTransform.h |  4 ++--
 .../include/otbGeocentricTransform.h          |  4 ++--
 .../otbImageToGenericRSOutputParameters.h     |  4 ++--
 .../include/otbInverseLogPolarTransform.h     |  4 ++--
 .../Transform/include/otbInverseSensorModel.h |  4 ++--
 .../Transform/include/otbLogPolarTransform.h  |  4 ++--
 .../Transform/include/otbSensorModelBase.h    |  4 ++--
 .../include/otbStreamingWarpImageFilter.h     |  4 ++--
 Modules/Core/Transform/include/otbTransform.h |  4 ++--
 .../Core/VectorDataBase/include/otbDataNode.h |  4 ++--
 .../include/otbDataNodeFunctionBase.h         |  4 ++--
 .../include/otbDataNodeImageFunction.h        |  4 ++--
 .../include/otbDataNodeVectorDataFunction.h   |  4 ++--
 .../include/otbGISConnectionImplementation.h  |  4 ++--
 .../otbPolyLineParametricPathWithValue.h      |  4 ++--
 .../Core/VectorDataBase/include/otbPolygon.h  |  4 ++--
 .../VectorDataBase/include/otbVectorData.h    |  4 ++--
 .../include/otbVectorDataIOBase.h             |  4 ++--
 .../include/otbVectorDataProperties.h         |  4 ++--
 .../include/otbVectorDataSource.h             |  4 ++--
 .../include/otbCloudDetectionFilter.h         |  4 ++--
 .../include/otbCloudEstimatorFilter.h         |  4 ++--
 .../otbDescriptorsListSampleGenerator.h       |  8 +++----
 .../include/otbFlusserMomentsIFFactory.h      |  4 ++--
 .../otbFourierMellinDescriptorsIFFactory.h    |  4 ++--
 .../include/otbHaralickTexturesIFFactory.h    |  4 ++--
 .../otbLabeledSampleLocalizationGenerator.h   |  4 ++--
 .../include/otbLocalHistogramIFFactory.h      |  4 ++--
 .../include/otbObjectDetectionClassifier.h    |  8 +++----
 .../include/otbRadiometricMomentsIFFactory.h  |  4 ++--
 .../otbStandardMetaImageFunctionBuilder.h     |  4 ++--
 .../include/otbBreakAngularPathListFilter.h   |  4 ++--
 .../include/otbGenericRoadExtractionFilter.h  |  4 ++--
 .../include/otbImageToPathListAlignFilter.h   |  4 ++--
 .../include/otbLikelihoodPathListFilter.h     |  4 ++--
 .../include/otbLinkPathListFilter.h           |  4 ++--
 ...otbModulusAndDirectionImageToImageFilter.h |  4 ++--
 .../otbNeighborhoodScalarProductFilter.h      |  4 ++--
 .../otbNonMaxRemovalByDirectionFilter.h       |  4 ++--
 .../include/otbParallelLinePathListFilter.h   |  4 ++--
 .../otbRemoveIsolatedByDirectionFilter.h      |  4 ++--
 .../include/otbRemoveWrongDirectionFilter.h   |  4 ++--
 .../include/otbRoadExtractionFilter.h         |  4 ++--
 .../otbVectorDataToRoadDescriptionFilter.h    |  4 ++--
 .../otbUrbanAreaDetectionImageFilter.h        |  4 ++--
 .../Corner/include/otbHarrisImageFilter.h     |  4 ++--
 .../include/otbHarrisImageToPointSetFilter.h  |  4 ++--
 ...tialObjectListToRightAnglePointSetFilter.h |  4 ++--
 ...tbVectorDataToRightAngleVectorDataFilter.h |  4 ++--
 .../include/otbKeyPointDensityImageFilter.h   |  4 ++--
 .../otbPointSetDensityEpanechnikovFunction.h  |  4 ++--
 .../include/otbPointSetDensityFunction.h      |  4 ++--
 .../otbPointSetDensityGaussianFunction.h      |  4 ++--
 .../include/otbPointSetToDensityImageFilter.h |  4 ++--
 ...ForwardFourierMellinTransformImageFilter.h |  4 ++--
 ...otbFourierMellinDescriptorsImageFunction.h |  4 ++--
 .../include/otbHessianToScalarImageFilter.h   |  4 ++--
 ...OfOrientedGradientCovariantImageFunction.h |  4 ++--
 .../include/otbImageToSIFTKeyPointSetFilter.h |  4 ++--
 .../include/otbImageToSURFKeyPointSetFilter.h |  4 ++--
 .../include/otbKeyPointSetsMatchingFilter.h   |  4 ++--
 .../Feature/Descriptors/include/otbLandmark.h |  4 ++--
 .../otbAssociativeSymmetricalSumImageFilter.h |  4 ++--
 ...symmetricFusionOfLineDetectorImageFilter.h |  4 ++--
 .../Edge/include/otbEdgeDensityImageFilter.h  |  4 ++--
 .../Edge/include/otbEdgeDetectorImageFilter.h |  4 ++--
 .../include/otbExtractSegmentsImageFilter.h   |  4 ++--
 .../Feature/Edge/include/otbFillGapsFilter.h  |  4 ++--
 .../otbLineCorrelationDetectorImageFilter.h   |  4 ++--
 .../include/otbLineDetectorImageFilterBase.h  |  4 ++--
 .../include/otbLineRatioDetectorImageFilter.h |  4 ++--
 .../Edge/include/otbLineSegmentDetector.h     |  4 ++--
 .../Edge/include/otbLocalHoughFilter.h        |  4 ++--
 .../otbPersistentVectorizationImageFilter.h   |  4 ++--
 ...tbPixelSuppressionByDirectionImageFilter.h |  4 ++--
 .../include/otbStreamingLineSegmentDetector.h |  4 ++--
 .../include/otbTouziEdgeDetectorImageFilter.h |  4 ++--
 .../include/otbComplexMomentPathFunction.h    |  4 ++--
 .../include/otbComplexMomentsImageFunction.h  |  4 ++--
 .../include/otbFlusserMomentsImageFunction.h  |  4 ++--
 .../Moments/include/otbFlusserPathFunction.h  |  4 ++--
 .../include/otbGeometricMomentPathFunction.h  |  4 ++--
 .../include/otbHuMomentsImageFunction.h       |  4 ++--
 .../Moments/include/otbHuPathFunction.h       |  4 ++--
 .../otbRadiometricMomentsImageFilter.h        |  4 ++--
 .../otbRadiometricMomentsImageFunction.h      |  4 ++--
 .../include/otbRealMomentPathFunction.h       |  4 ++--
 .../include/otbRealMomentsImageFunction.h     |  4 ++--
 .../include/otbAddCarvingPathFilter.h         |  4 ++--
 .../include/otbImageToCarvingPathFilter.h     |  4 ++--
 .../include/otbRemoveCarvingPathFilter.h      |  4 ++--
 .../otbGreyLevelCooccurrenceIndexedList.h     |  4 ++--
 .../otbHaralickTexturesImageFunction.h        |  4 ++--
 .../include/otbSFSTexturesImageFilter.h       |  4 ++--
 .../otbScalarImageToAdvancedTexturesFilter.h  |  4 ++--
 ...tbScalarImageToHigherOrderTexturesFilter.h |  4 ++--
 .../otbScalarImageToPanTexTextureFilter.h     |  4 ++--
 .../include/otbScalarImageToTexturesFilter.h  |  4 ++--
 .../include/otbTextureImageFunction.h         |  4 ++--
 ...ctorNeighborhoodJoinHistogramImageFilter.h |  4 ++--
 .../include/otbCBAMIChangeDetector.h          |  4 ++--
 .../include/otbCorrelationChangeDetector.h    |  4 ++--
 .../include/otbJoinHistogramMIImageFilter.h   |  4 ++--
 .../otbKullbackLeiblerDistanceImageFilter.h   |  4 ++--
 .../otbKullbackLeiblerProfileImageFilter.h    |  4 ++--
 ...backLeiblerSupervizedDistanceImageFilter.h |  4 ++--
 .../include/otbLHMIChangeDetector.h           |  4 ++--
 .../include/otbMeanDifferenceImageFilter.h    |  4 ++--
 .../include/otbMeanRatioImageFilter.h         |  4 ++--
 ...ultivariateAlterationDetectorImageFilter.h |  4 ++--
 .../include/otbReliefColormapFunctor.h        |  4 ++--
 .../otbScalarToRainbowRGBPixelFunctor.h       |  4 ++--
 .../include/otbConvolutionImageFilter.h       |  4 ++--
 .../include/otbGaborFilterGenerator.h         |  4 ++--
 .../otbOverlapSaveConvolutionImageFilter.h    |  4 ++--
 .../DEM/include/otbDEMToImageGenerator.h      |  4 ++--
 .../otbEstimateInnerProductPCAImageFilter.h   |  4 ++--
 .../include/otbFastICAImageFilter.h           |  4 ++--
 .../include/otbInnerProductPCAImageFilter.h   |  4 ++--
 ...bMaximumAutocorrelationFactorImageFilter.h |  4 ++--
 .../include/otbBinaryFunctorImageFilter.h     |  4 ++--
 .../otbBinaryFunctorNeighborhoodImageFilter.h |  4 ++--
 ...naryFunctorNeighborhoodVectorImageFilter.h |  4 ++--
 .../include/otbBinaryImageDensityFunction.h   |  4 ++--
 ...naryImageMinimalBoundingRegionCalculator.h |  4 ++--
 .../otbBinaryImageToDensityImageFilter.h      |  4 ++--
 .../include/otbChangeInformationImageFilter.h |  4 ++--
 .../include/otbChangeLabelImageFilter.h       |  4 ++--
 .../include/otbChangeNoDataValueFilter.h      |  4 ++--
 .../include/otbClampVectorImageFilter.h       |  4 ++--
 .../otbConcatenateScalarValueImageFilter.h    |  4 ++--
 .../include/otbConcatenateVectorImageFilter.h |  4 ++--
 ...otbFunctionWithNeighborhoodToImageFilter.h |  4 ++--
 .../include/otbGridResampleImageFilter.h      |  4 ++--
 .../include/otbHillShadingFilter.h            |  4 ++--
 .../include/otbImageToNoDataMaskFilter.h      |  4 ++--
 .../include/otbImageToVectorImageCastFilter.h |  4 ++--
 .../include/otbLog10ThresholdedImageFilter.h  |  4 ++--
 .../include/otbMatrixImageFilter.h            |  4 ++--
 .../include/otbMultiplyByScalarImageFilter.h  |  4 ++--
 .../otbNRIBandImagesToOneNComplexBandsImage.h |  4 ++--
 .../otbOneRIBandImageToOneComplexBandImage.h  |  4 ++--
 .../include/otbPerBandVectorImageFilter.h     |  4 ++--
 ...ealAndImaginaryImageToComplexImageFilter.h |  4 ++--
 .../otbRealImageToComplexImageFilter.h        |  4 ++--
 .../include/otbShiftScaleImageAdaptor.h       |  4 ++--
 .../include/otbShiftScaleVectorImageFilter.h  |  4 ++--
 .../otbSpectralAngleDistanceImageFilter.h     |  4 ++--
 ...tbStreamingInnerProductVectorImageFilter.h |  8 +++----
 ...treamingMatrixTransposeMatrixImageFilter.h |  8 +++----
 .../include/otbStreamingResampleImageFilter.h |  4 ++--
 .../include/otbStreamingShrinkImageFilter.h   | 16 ++++++-------
 .../include/otbTernaryFunctorImageFilter.h    |  4 ++--
 .../include/otbThresholdVectorImageFilter.h   |  4 ++--
 .../include/otbTileImageFilter.h              |  4 ++--
 .../otbTwoNRIBandsImageToNComplexBandsImage.h |  4 ++--
 .../otbUnaryFunctorNeighborhoodImageFilter.h  |  4 ++--
 ...FunctorNeighborhoodWithOffsetImageFilter.h |  4 ++--
 .../otbUnaryFunctorWithIndexImageFilter.h     |  4 ++--
 .../otbVectorImageTo3DScalarImageFilter.h     |  4 ++--
 .../otbVectorImageToAmplitudeImageFilter.h    |  4 ++--
 .../otbVectorRescaleIntensityImageFilter.h    |  4 ++--
 .../ImageNoise/include/otbFrostImageFilter.h  |  4 ++--
 .../include/otbGammaMAPImageFilter.h          |  4 ++--
 .../ImageNoise/include/otbKuanImageFilter.h   |  4 ++--
 .../ImageNoise/include/otbLeeImageFilter.h    |  4 ++--
 .../include/otbBandMathImageFilter.h          |  4 ++--
 .../include/otbMaskMuParserFilter.h           |  4 ++--
 .../include/otbMaskMuParserFunctor.h          |  4 ++--
 .../include/otbOBIAMuParserFunctor.h          |  4 ++--
 .../Filtering/MathParser/include/otbParser.h  |  4 ++--
 ...tbParserConditionDataNodeFeatureFunction.h |  4 ++--
 .../Filtering/MathParser/src/otbParser.cxx    |  4 ++--
 .../include/otbBandMathXImageFilter.h         |  4 ++--
 .../MathParserX/include/otbParserX.h          |  4 ++--
 .../Filtering/MathParserX/src/otbParserX.cxx  |  4 ++--
 .../otbMorphologicalPyramidMRToMSConverter.h  |  4 ++--
 .../otbMorphologicalPyramidResampler.h        |  4 ++--
 .../otbMorphologicalPyramidSegmenter.h        |  4 ++--
 .../Path/include/otbCompacityPathFunction.h   |  4 ++--
 .../Path/include/otbDrawPathFilter.h          |  4 ++--
 .../Path/include/otbDrawPathListFilter.h      |  4 ++--
 .../otbImageFittingPolygonListFilter.h        |  4 ++--
 .../Path/include/otbImageToEdgePathFilter.h   |  4 ++--
 .../Path/include/otbImageToPathListFilter.h   |  4 ++--
 .../Path/include/otbOrientationPathFunction.h |  4 ++--
 .../Filtering/Path/include/otbPathFunction.h  |  4 ++--
 .../Path/include/otbPathListSource.h          |  4 ++--
 .../include/otbPathListToPathListFilter.h     |  4 ++--
 ...tbRegionImageToRectangularPathListFilter.h |  4 ++--
 .../include/otbVectorizationPathListFilter.h  |  4 ++--
 ...rToPolarisationDegreeAndPowerImageFilter.h |  4 ++--
 ...MuellerToReciprocalCovarianceImageFilter.h |  4 ++--
 ...MultiChannelsPolarimetricSynthesisFilter.h |  2 +-
 .../Polarimetry/include/otbPolarimetricData.h |  4 ++--
 .../otbReciprocalBarnesDecompImageFilter.h    |  4 ++--
 ...lCoherencyToReciprocalMuellerImageFilter.h |  4 ++--
 ...alCovarianceToCoherencyDegreeImageFilter.h |  4 ++--
 ...varianceToReciprocalCoherencyImageFilter.h |  4 ++--
 .../include/otbReciprocalHAlphaImageFilter.h  |  4 ++--
 .../otbReciprocalHuynenDecompImageFilter.h    |  4 ++--
 ...oReciprocalCircularCovarianceImageFilter.h |  4 ++--
 .../otbReciprocalPauliDecompImageFilter.h     |  4 ++--
 .../include/otbSinclairImageFilter.h          |  4 ++--
 .../otbSinclairReciprocalImageFilter.h        |  4 ++--
 .../include/otbEckert4MapProjection.h         |  4 ++--
 .../otbGCPsToRPCSensorModelImageFilter.h      |  4 ++--
 .../include/otbGenericRSResampleImageFilter.h |  4 ++--
 .../include/otbGeographicalDistance.h         |  4 ++--
 .../include/otbGroundSpacingImageFunction.h   |  4 ++--
 .../otbImageToEnvelopeVectorDataFilter.h      |  4 ++--
 .../otbImportGeoInformationImageFilter.h      |  4 ++--
 .../include/otbLambert2EtenduProjection.h     |  4 ++--
 .../include/otbLambert3CartoSudProjection.h   |  4 ++--
 .../include/otbLambert93Projection.h          |  4 ++--
 .../otbLambertConformalConicMapProjection.h   |  4 ++--
 .../otbLeastSquareAffineTransformEstimator.h  |  4 ++--
 .../include/otbMollweidMapProjection.h        |  4 ++--
 .../include/otbOrthoRectificationFilter.h     |  4 ++--
 .../otbPhysicalToRPCSensorModelImageFilter.h  |  4 ++--
 ...tbPleiadesPToXSAffineTransformCalculator.h |  6 ++---
 .../otbProjectiveProjectionImageFilter.h      |  4 ++--
 .../Projection/include/otbRationalTransform.h |  4 ++--
 .../include/otbSVY21MapProjection.h           |  4 ++--
 .../include/otbSinusoidalMapProjection.h      |  4 ++--
 .../Projection/include/otbTileMapTransform.h  |  4 ++--
 .../include/otbTransMercatorMapProjection.h   |  4 ++--
 .../Projection/include/otbUtmMapProjection.h  |  4 ++--
 .../otbVectorDataIntoImageProjectionFilter.h  |  4 ++--
 .../include/otbVectorDataProjectionFilter.h   |  4 ++--
 .../include/otbVectorDataTransformFilter.h    |  4 ++--
 .../otbMeanShiftSmoothingImageFilter.h        |  4 ++--
 .../include/otbConcatenateSampleListFilter.h  |  4 ++--
 ...bContinuousMinimumMaximumImageCalculator.h |  4 ++--
 ...otbGaussianAdditiveNoiseSampleListFilter.h |  4 ++--
 .../include/otbListSampleGenerator.h          |  4 ++--
 .../Statistics/include/otbListSampleSource.h  |  4 ++--
 .../otbListSampleToBalancedListSampleFilter.h |  4 ++--
 .../include/otbListSampleToListSampleFilter.h |  4 ++--
 .../include/otbLocalHistogramImageFunction.h  |  4 ++--
 .../include/otbShiftScaleSampleListFilter.h   |  4 ++--
 .../include/otbStreamingCompareImageFilter.h  |  8 +++----
 .../otbStreamingHistogramVectorImageFilter.h  |  8 +++----
 .../include/otbStreamingMinMaxImageFilter.h   |  8 +++----
 .../otbStreamingMinMaxVectorImageFilter.h     |  8 +++----
 .../otbStreamingStatisticsImageFilter.h       |  8 +++----
 ...reamingStatisticsMapFromLabelImageFilter.h |  8 +++----
 .../otbStreamingStatisticsVectorImageFilter.h |  8 +++----
 .../include/otbVarianceImageFilter.h          |  4 ++--
 .../otbVectorImageToIntensityImageFilter.h    |  4 ++--
 .../otbVectorImageToMatrixImageFilter.h       |  8 +++----
 .../include/otbConcatenateVectorDataFilter.h  |  4 ++--
 .../otbDBOverlapDataNodeFeatureFunction.h     |  4 ++--
 ...sWithNeighborhoodDataNodeFeatureFunction.h |  4 ++--
 .../otbSpectralAngleDataNodeFeatureFunction.h |  4 ++--
 .../include/otbVectorDataAdapter.h            |  4 ++--
 .../include/otbVectorDataExtractROI.h         |  4 ++--
 .../otbVectorDataToRandomLineGenerator.h      |  4 ++--
 ...ectorDataToSpecificDescriptionFilterBase.h |  4 ++--
 .../include/otbVectorDataToVectorDataFilter.h |  4 ++--
 .../include/otbVectorDataStyle.h              |  4 ++--
 .../include/otbVectorDataToMapFilter.h        |  4 ++--
 .../Wavelet/include/otbSubsampleImageFilter.h |  4 ++--
 .../Wavelet/include/otbWaveletImageFilter.h   |  4 ++--
 .../include/otbWaveletInverseImageFilter.h    |  4 ++--
 ...tsBandsListToWaveletsSynopsisImageFilter.h |  4 ++--
 ...tsSynopsisImageToWaveletsBandsListFilter.h |  4 ++--
 ...otbNeighborhoodMajorityVotingImageFilter.h |  4 ++--
 .../include/otbLocalRxDetectorFilter.h        |  4 ++--
 .../otbLocalRxDetectorNonThreadFilter.h       |  4 ++--
 .../otbEigenvalueLikelihoodMaximisation.h     |  4 ++--
 .../include/otbVcaImageFilter.h               |  4 ++--
 .../include/otbVirtualDimensionality.h        |  4 ++--
 .../include/otbISRAUnmixingImageFilter.h      |  4 ++--
 .../Unmixing/include/otbMDMDNMFImageFilter.h  |  4 ++--
 .../include/otbNCLSUnmixingImageFilter.h      |  4 ++--
 .../include/otbSparseUnmixingImageFilter.h    |  4 ++--
 .../otbUnConstrainedLeastSquareImageFilter.h  |  4 ++--
 .../IO/Carto/include/otbCoordinateToName.h    |  4 ++--
 .../otbImageToOSMVectorDataGenerator.h        |  4 ++--
 .../Carto/include/otbMapFileProductWriter.h   |  4 ++--
 .../include/otbOSMDataToVectorDataGenerator.h |  4 ++--
 .../IO/Carto/include/otbPlaceNameToLonLat.h   |  4 ++--
 Modules/IO/Carto/include/otbWorldFile.h       |  4 ++--
 .../otbExtendedFilenameToReaderOptions.h      |  4 ++--
 .../otbExtendedFilenameToWriterOptions.h      |  4 ++--
 Modules/IO/IOBSQ/include/otbBSQImageIO.h      |  4 ++--
 .../IO/IOBSQ/include/otbBSQImageIOFactory.h   |  4 ++--
 Modules/IO/IOGDAL/include/otbGDALImageIO.h    |  4 ++--
 .../IO/IOGDAL/include/otbGDALImageIOFactory.h |  4 ++--
 .../IOGDAL/include/otbGDALOverviewsBuilder.h  |  4 ++--
 Modules/IO/IOGDAL/include/otbOGRIOHelper.h    |  4 ++--
 .../IO/IOGDAL/include/otbOGRVectorDataIO.h    |  4 ++--
 .../include/otbOGRVectorDataIOFactory.h       |  4 ++--
 Modules/IO/IOKML/include/otbKMLVectorDataIO.h |  4 ++--
 .../IOKML/include/otbKMLVectorDataIOFactory.h |  4 ++--
 Modules/IO/IOLUM/include/otbLUMImageIO.h      |  4 ++--
 .../IO/IOLUM/include/otbLUMImageIOFactory.h   |  4 ++--
 Modules/IO/IOMSTAR/include/otbMSTARImageIO.h  |  4 ++--
 .../IOMSTAR/include/otbMSTARImageIOFactory.h  |  4 ++--
 Modules/IO/IOONERA/include/otbONERAImageIO.h  |  4 ++--
 .../IOONERA/include/otbONERAImageIOFactory.h  |  4 ++--
 Modules/IO/IORAD/include/otbRADImageIO.h      |  4 ++--
 .../IO/IORAD/include/otbRADImageIOFactory.h   |  4 ++--
 .../IO/IOTileMap/include/otbTileMapImageIO.h  |  4 ++--
 .../include/otbTileMapImageIOFactory.h        |  4 ++--
 .../include/otbTileMapImageIOHelper.h         |  4 ++--
 .../include/otbStatisticsXMLFileReader.h      |  4 ++--
 .../include/otbStatisticsXMLFileWriter.h      |  4 ++--
 .../IO/ImageIO/include/otbImageFileReader.h   |  4 ++--
 .../IO/ImageIO/include/otbImageFileWriter.h   |  4 ++--
 .../IO/ImageIO/include/otbImageIOFactory.h    |  4 ++--
 .../ImageIO/include/otbMultiImageFileWriter.h |  2 +-
 .../otbScalarBufferToImageFileWriter.h        |  4 ++--
 .../KMZWriter/include/otbKmzProductWriter.h   |  4 ++--
 .../include/otbDifferenceImageFilter.h        |  4 ++--
 .../include/otbVectorDataFileReader.h         |  4 ++--
 .../include/otbVectorDataFileWriter.h         |  4 ++--
 .../include/otbVectorDataIOFactory.h          |  4 ++--
 .../otbConfusionMatrixToMassOfBelief.h        |  4 ++--
 .../otbDSFusionOfClassifiersImageFilter.h     |  4 ++--
 .../include/otbJointMassOfBeliefFilter.h      |  4 ++--
 .../DempsterShafer/include/otbMassOfBelief.h  |  4 ++--
 .../include/otbStandardDSCostFunction.h       |  4 ++--
 ...bVectorDataToDSValidatedVectorDataFilter.h |  4 ++--
 .../include/otbAutoencoderModelFactory.h      |  4 ++--
 .../otbDimensionalityReductionModelFactory.h  |  4 ++--
 .../otbImageDimensionalityReductionFilter.h   |  4 ++--
 .../include/otbPCAModelFactory.h              |  4 ++--
 .../include/otbSOMModelFactory.h              |  4 ++--
 .../LearningBase/include/otbDecisionTree.h    |  4 ++--
 .../include/otbGaussianModelComponent.h       |  4 ++--
 .../include/otbImageClassificationFilter.h    |  4 ++--
 .../otbKMeansImageClassificationFilter.h      |  4 ++--
 .../include/otbMachineLearningModel.h         |  4 ++--
 .../otbMachineLearningModelFactoryBase.h      |  4 ++--
 .../include/otbMarkovRandomFieldFilter.h      |  4 ++--
 Modules/Learning/SOM/include/otbPeriodicSOM.h |  4 ++--
 Modules/Learning/SOM/include/otbSOM.h         |  4 ++--
 .../SOM/include/otbSOMActivationBuilder.h     |  4 ++--
 .../include/otbSOMImageClassificationFilter.h |  4 ++--
 Modules/Learning/SOM/include/otbSOMMap.h      |  4 ++--
 .../SOM/include/otbSOMWithMissingValue.h      |  4 ++--
 .../SOM/include/otbSOMbasedImageFilter.h      |  2 +-
 .../include/otbImageSampleExtractorFilter.h   |  8 +++----
 .../otbOGRDataToClassStatisticsFilter.h       |  8 +++----
 .../otbOGRDataToSamplePositionFilter.h        |  8 +++----
 .../include/otbPersistentSamplingFilterBase.h |  4 ++--
 .../include/otbSampleAugmentationFilter.h     |  4 ++--
 .../include/otbSamplingRateCalculator.h       |  4 ++--
 .../include/otbSamplingRateCalculatorList.h   |  4 ++--
 .../include/otbBoostMachineLearningModel.h    |  4 ++--
 .../otbBoostMachineLearningModelFactory.h     |  4 ++--
 .../include/otbConfusionMatrixCalculator.h    |  4 ++--
 .../include/otbConfusionMatrixMeasurements.h  |  4 ++--
 .../otbDecisionTreeMachineLearningModel.h     |  4 ++--
 ...bDecisionTreeMachineLearningModelFactory.h |  4 ++--
 .../otbExhaustiveExponentialOptimizer.h       |  4 ++--
 ...bGradientBoostedTreeMachineLearningModel.h |  4 ++--
 ...ntBoostedTreeMachineLearningModelFactory.h |  4 ++--
 ...otbKNearestNeighborsMachineLearningModel.h |  4 ++--
 ...restNeighborsMachineLearningModelFactory.h |  4 ++--
 .../include/otbLabelMapClassifier.h           |  4 ++--
 .../include/otbLibSVMMachineLearningModel.h   |  4 ++--
 .../otbLibSVMMachineLearningModelFactory.h    |  4 ++--
 .../include/otbMachineLearningModelFactory.h  |  4 ++--
 .../otbNeuralNetworkMachineLearningModel.h    |  4 ++--
 ...NeuralNetworkMachineLearningModelFactory.h |  4 ++--
 .../otbNormalBayesMachineLearningModel.h      |  4 ++--
 ...tbNormalBayesMachineLearningModelFactory.h |  4 ++--
 .../otbRandomForestsMachineLearningModel.h    |  4 ++--
 ...RandomForestsMachineLearningModelFactory.h |  4 ++--
 .../otbSVMCrossValidationCostFunction.h       |  4 ++--
 .../include/otbSVMMachineLearningModel.h      |  4 ++--
 .../otbSVMMachineLearningModelFactory.h       |  4 ++--
 ...tbSharkRandomForestsMachineLearningModel.h |  4 ++--
 ...RandomForestsMachineLearningModelFactory.h |  4 ++--
 .../otbExhaustiveExponentialOptimizerTest.cxx |  4 ++--
 .../include/otbContingencyTable.h             |  4 ++--
 .../include/otbContingencyTableCalculator.h   |  4 ++--
 .../otbSharkKMeansMachineLearningModel.h      |  4 ++--
 ...tbSharkKMeansMachineLearningModelFactory.h |  4 ++--
 Modules/MPI/MPIConfig/include/otbMPIConfig.h  |  4 ++--
 .../include/otbSimpleParallelTiffWriter.h     |  4 ++--
 .../include/otbImageListToRCC8GraphFilter.h   |  4 ++--
 .../OBIA/RCC8/include/otbRCC8GraphSource.h    |  4 ++--
 .../include/otbGAndRIndexImageFilter.h        |  4 ++--
 .../otbMultiChannelGAndRIndexImageFilter.h    |  4 ++--
 ...bMultiChannelRAndBAndNIRIndexImageFilter.h |  4 ++--
 ...bMultiChannelRAndGAndNIRIndexImageFilter.h |  4 ++--
 .../otbMultiChannelRAndNIRIndexImageFilter.h  |  4 ++--
 .../otbMultiChannelRadiometricImageFilter.h   |  4 ++--
 .../include/otbNDVIDataNodeFeatureFunction.h  |  4 ++--
 .../include/otbRAndBAndNIRIndexImageFilter.h  |  4 ++--
 .../include/otbRAndGAndNIRIndexImageFilter.h  |  4 ++--
 .../include/otbRAndNIRIndexImageFilter.h      |  4 ++--
 .../otbWaterSqrtSpectralAngleImageFilter.h    |  4 ++--
 .../otbAtmosphericCorrectionParameters.h      |  4 ++--
 .../include/otbAtmosphericRadiativeTerms.h    |  8 +++----
 .../otbImageMetadataCorrectionParameters.h    |  4 ++--
 .../include/otbSpectralSensitivityReader.h    |  4 ++--
 .../include/otbWavelengthSpectralBands.h      |  4 ++--
 .../include/otbSarBrightnessFunction.h        |  4 ++--
 .../include/otbSarBrightnessToImageFilter.h   |  4 ++--
 .../include/otbSarDeburstImageFilter.h        |  4 ++--
 .../include/otbSarParametricMapFunction.h     |  4 ++--
 .../otbSarRadiometricCalibrationFunction.h    |  4 ++--
 ...tbSarRadiometricCalibrationToImageFilter.h |  4 ++--
 .../otbTerraSarBrightnessImageFilter.h        |  4 ++--
 .../include/otbAtmosphericEffects.h           |  4 ++--
 .../include/otbImageSimulationMethod.h        |  4 ++--
 .../otbLabelMapToSimulatedImageFilter.h       |  4 ++--
 .../include/otbLabelToProSailParameters.h     |  4 ++--
 .../otbLabelToSimulationParametersBase.h      |  4 ++--
 .../Simulation/include/otbLeafParameters.h    |  4 ++--
 .../Simulation/include/otbProSailParameters.h |  4 ++--
 .../Simulation/include/otbProspectModel.h     |  4 ++--
 .../include/otbReduceSpectralResponse.h       |  4 ++--
 ...bReduceSpectralResponseClassifierRAndNIR.h |  4 ++--
 .../Simulation/include/otbSatelliteRSR.h      |  4 ++--
 .../include/otbSimulationStep1Base.h          |  4 ++--
 .../include/otbSimulationStep2Base.h          |  4 ++--
 .../include/otbSpatialisationFilter.h         |  4 ++--
 .../Simulation/include/otbSpectralResponse.h  |  4 ++--
 .../include/otbDisparityMapEstimationMethod.h |  4 ++--
 .../include/otbDisparityMapMedianFilter.h     |  4 ++--
 .../include/otbDisparityMapTo3DFilter.h       |  4 ++--
 .../include/otbDisparityMapToDEMFilter.h      |  4 ++--
 .../include/otbDisparityTranslateFilter.h     |  4 ++--
 .../include/otbFineRegistrationImageFilter.h  |  4 ++--
 .../include/otbMultiDisparityMapTo3DFilter.h  |  4 ++--
 .../include/otbNCCRegistrationFilter.h        |  4 ++--
 .../include/otbNCCRegistrationFunction.h      |  4 ++--
 .../otbPixelWiseBlockMatchingImageFilter.h    |  2 +-
 .../include/otbSubPixelDisparityImageFilter.h |  4 ++--
 ...nesInterpolateDisplacementFieldGenerator.h |  4 ++--
 ...olateTransformDisplacementFieldGenerator.h |  4 ++--
 ...earInterpolateDisplacementFieldGenerator.h |  4 ++--
 ...earInterpolateDisplacementFieldGenerator.h |  4 ++--
 ...tbNearestPointDisplacementFieldGenerator.h |  4 ++--
 ...arestTransformDisplacementFieldGenerator.h |  4 ++--
 .../otbPointSetToDisplacementFieldGenerator.h |  4 ++--
 ...ithTransformToDisplacementFieldGenerator.h |  4 ++--
 .../include/otbAdhesionCorrectionFilter.h     |  4 ++--
 .../include/otbBijectionCoherencyFilter.h     |  4 ++--
 .../Stereo/include/otbLineOfSightOptimizer.h  |  4 ++--
 .../Stereo/include/otbMulti3DMapToDEMFilter.h |  4 ++--
 ...otbStereoSensorModelToElevationMapFilter.h |  4 ++--
 ...ereorectificationDisplacementFieldSource.h |  2 +-
 .../otbConnectedComponentMuParserFunctor.h    |  4 ++--
 .../otbLabelObjectOpeningMuParserFilter.h     |  4 ++--
 .../otbLabelImageRegionMergingFilter.h        |  4 ++--
 .../otbLabelImageRegionPruningFilter.h        |  4 ++--
 .../otbLabelImageToOGRDataSourceFilter.h      |  4 ++--
 .../include/otbLabelImageToVectorDataFilter.h |  4 ++--
 .../include/otbLabelMapToVectorDataFilter.h   |  4 ++--
 .../otbOGRDataSourceToLabelImageFilter.h      |  4 ++--
 .../otbPersistentImageToOGRDataFilter.h       |  4 ++--
 .../otbPersistentImageToOGRLayerFilter.h      |  4 ++--
 .../otbPersistentImageToVectorDataFilter.h    |  4 ++--
 .../include/otbRasterizeVectorDataFilter.h    |  4 ++--
 .../include/otbVectorDataToLabelImageFilter.h |  4 ++--
 .../include/otbVectorDataToLabelMapFilter.h   |  4 ++--
 ...VectorDataToLabelMapWithAttributesFilter.h |  4 ++--
 ...tbLabelizeConfidenceConnectedImageFilter.h |  4 ++--
 ...otbLabelizeConnectedThresholdImageFilter.h |  4 ++--
 .../include/otbLabelizeImageFilterBase.h      |  4 ++--
 ...LabelizeNeighborhoodConnectedImageFilter.h |  4 ++--
 .../include/otbRelabelComponentImageFilter.h  |  4 ++--
 .../include/otbMeanShiftSegmentationFilter.h  |  4 ++--
 .../otbClosingOpeningMorphologicalFilter.h    |  4 ++--
 .../otbConvexOrConcaveClassificationFilter.h  |  4 ++--
 ...odesicMorphologyDecompositionImageFilter.h |  4 ++--
 .../otbGeodesicMorphologyLevelingFilter.h     |  4 ++--
 .../include/otbImageToProfileFilter.h         |  4 ++--
 .../otbMorphologicalClosingProfileFilter.h    |  4 ++--
 .../otbMorphologicalOpeningProfileFilter.h    |  4 ++--
 ...ScaleConvexOrConcaveClassificationFilter.h |  4 ++--
 .../otbOpeningClosingMorphologicalFilter.h    |  4 ++--
 ...ivativeToMultiScaleCharacteristicsFilter.h |  4 ++--
 .../otbProfileToProfileDerivativeFilter.h     |  4 ++--
 .../otbOGRLayerStreamStitchingFilter.h        |  4 ++--
 ...reamingImageToOGRLayerSegmentationFilter.h |  8 +++----
 .../itkImageRegionMultidimensionalSplitter.h  |  4 ++--
 .../ITK/include/itkImageRegionSplitter.h      |  4 ++--
 .../itkTransformToDisplacementFieldSource.h   |  4 ++--
 .../ITK/include/itkUnaryFunctorImageFilter.h  |  4 ++--
 .../MonteverdiGui/include/mvdQtWidgetView.h   |  4 ++--
 .../include/otbWrapperAbstractParameterList.h |  4 ++--
 .../include/otbWrapperApplication.h           |  4 ++--
 .../include/otbWrapperApplicationFactory.h    |  4 ++--
 .../otbWrapperApplicationFactoryBase.h        |  4 ++--
 .../otbWrapperApplicationHtmlDocGenerator.h   |  4 ++--
 .../include/otbWrapperApplicationRegistry.h   |  4 ++--
 .../include/otbWrapperChoiceParameter.h       |  4 ++--
 .../otbWrapperComplexInputImageParameter.h    |  4 ++--
 .../otbWrapperComplexOutputImageParameter.h   |  4 ++--
 .../include/otbWrapperCompositeApplication.h  |  4 ++--
 .../include/otbWrapperDirectoryParameter.h    |  2 +-
 .../include/otbWrapperDocExampleStructure.h   |  4 ++--
 .../include/otbWrapperEmptyParameter.h        |  4 ++--
 .../otbWrapperInputFilenameListParameter.h    |  4 ++--
 .../otbWrapperInputFilenameParameter.h        |  2 +-
 .../otbWrapperInputImageListParameter.h       |  4 ++--
 .../include/otbWrapperInputImageParameter.h   |  4 ++--
 .../otbWrapperInputProcessXMLParameter.h      |  4 ++--
 .../otbWrapperInputVectorDataListParameter.h  |  7 ++----
 .../otbWrapperInputVectorDataParameter.h      |  4 ++--
 .../include/otbWrapperListViewParameter.h     |  4 ++--
 .../include/otbWrapperNumericalParameter.h    |  4 ++--
 .../otbWrapperOutputFilenameParameter.h       |  2 +-
 .../include/otbWrapperOutputImageParameter.h  |  4 ++--
 .../otbWrapperOutputProcessXMLParameter.h     |  4 ++--
 .../otbWrapperOutputVectorDataParameter.h     |  4 ++--
 .../include/otbWrapperParameter.h             |  4 ++--
 .../include/otbWrapperParameterGroup.h        |  4 ++--
 .../include/otbWrapperParameterKey.h          |  4 ++--
 .../include/otbWrapperParameterList.h         |  4 ++--
 .../include/otbWrapperProxyParameter.h        |  4 ++--
 .../include/otbWrapperRAMParameter.h          |  4 ++--
 .../include/otbWrapperRadiusParameter.h       |  4 ++--
 .../include/otbWrapperStringListParameter.h   |  6 ++---
 .../include/otbWrapperStringParameter.h       |  4 ++--
 .../include/otbWrapperCommandLineLauncher.h   |  4 ++--
 .../include/otbWrapperCommandLineParser.h     |  4 ++--
 .../include/otbQtFileSelectionWidget.h        |  4 ++--
 .../include/otbQtStringSelectionWidget.h      |  4 ++--
 .../otbWrapperQtWidgetChoiceParameter.h       |  4 ++--
 ...rapperQtWidgetComplexInputImageParameter.h |  4 ++--
 ...apperQtWidgetComplexOutputImageParameter.h |  4 ++--
 .../otbWrapperQtWidgetDirectoryParameter.h    |  4 ++--
 .../otbWrapperQtWidgetEmptyParameter.h        |  4 ++--
 .../otbWrapperQtWidgetFloatParameter.h        |  4 ++--
 ...rapperQtWidgetInputFilenameListParameter.h |  7 ++----
 ...otbWrapperQtWidgetInputFilenameParameter.h |  4 ++--
 ...tbWrapperQtWidgetInputImageListParameter.h |  7 ++----
 .../otbWrapperQtWidgetInputImageParameter.h   |  4 ++--
 ...bWrapperQtWidgetInputProcessXMLParameter.h |  4 ++--
 ...pperQtWidgetInputVectorDataListParameter.h |  7 ++----
 ...bWrapperQtWidgetInputVectorDataParameter.h |  4 ++--
 .../include/otbWrapperQtWidgetIntParameter.h  |  4 ++--
 .../otbWrapperQtWidgetListViewParameter.h     |  4 ++--
 .../include/otbWrapperQtWidgetModel.h         |  8 +++----
 ...tbWrapperQtWidgetOutputFilenameParameter.h |  4 ++--
 .../otbWrapperQtWidgetOutputImageParameter.h  |  4 ++--
 ...WrapperQtWidgetOutputProcessXMLParameter.h |  4 ++--
 ...WrapperQtWidgetOutputVectorDataParameter.h |  4 ++--
 .../include/otbWrapperQtWidgetParameterBase.h |  4 ++--
 .../otbWrapperQtWidgetParameterFactory.h      |  4 ++--
 .../otbWrapperQtWidgetParameterGroup.h        |  4 ++--
 .../otbWrapperQtWidgetParameterLabel.h        |  4 ++--
 .../include/otbWrapperQtWidgetParameterList.h |  4 ++--
 .../otbWrapperQtWidgetProgressReport.h        |  4 ++--
 .../include/otbWrapperQtWidgetRAMParameter.h  |  4 ++--
 .../otbWrapperQtWidgetSimpleProgressReport.h  |  2 +-
 .../otbWrapperQtWidgetStringListParameter.h   |  6 ++---
 .../otbWrapperQtWidgetStringParameter.h       |  4 ++--
 .../QtWidget/include/otbWrapperQtWidgetView.h |  4 ++--
 713 files changed, 1486 insertions(+), 1502 deletions(-)

diff --git a/Examples/ChangeDetection/ChangeDetectionFrameworkExample.cxx b/Examples/ChangeDetection/ChangeDetectionFrameworkExample.cxx
index 8196e8efe8..3e0853c2cb 100644
--- a/Examples/ChangeDetection/ChangeDetectionFrameworkExample.cxx
+++ b/Examples/ChangeDetection/ChangeDetectionFrameworkExample.cxx
@@ -144,8 +144,8 @@ protected:
   ~MyChangeDetectorImageFilter() ITK_OVERRIDE {}
 
 private:
-  MyChangeDetectorImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  MyChangeDetectorImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 // Software Guide : EndCodeSnippet
diff --git a/Examples/Simulation/LAIAndPROSAILToSensorResponse.cxx b/Examples/Simulation/LAIAndPROSAILToSensorResponse.cxx
index e61faf0608..d8f347125d 100644
--- a/Examples/Simulation/LAIAndPROSAILToSensorResponse.cxx
+++ b/Examples/Simulation/LAIAndPROSAILToSensorResponse.cxx
@@ -145,8 +145,8 @@ protected:
   }
 
 private:
-  ImageUniqueValuesCalculator(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  ImageUniqueValuesCalculator(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   ImageConstPointer         m_Image;
 
@@ -460,8 +460,8 @@ protected:
     this->GetOutput()->SetNumberOfComponentsPerPixel( m_NumberOfOutputBands );
   }
 private:
-  TernaryFunctorImageFilterWithNBands(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  TernaryFunctorImageFilterWithNBands(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   unsigned int m_NumberOfOutputBands;
 
diff --git a/Modules/Adapters/CurlAdapters/include/otbCurlHelper.h b/Modules/Adapters/CurlAdapters/include/otbCurlHelper.h
index fa00e3615b..15691fb6bf 100644
--- a/Modules/Adapters/CurlAdapters/include/otbCurlHelper.h
+++ b/Modules/Adapters/CurlAdapters/include/otbCurlHelper.h
@@ -74,8 +74,8 @@ protected:
   ~CurlHelper() override {}
 
 private:
-  CurlHelper(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  CurlHelper(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   // Need to use our writing function to handle windows segfaults
   // Need to be static cause the CURL_OPT is expecting a pure C
diff --git a/Modules/Adapters/CurlAdapters/include/otbCurlHelperInterface.h b/Modules/Adapters/CurlAdapters/include/otbCurlHelperInterface.h
index a5cb6a56a0..2336f359c6 100644
--- a/Modules/Adapters/CurlAdapters/include/otbCurlHelperInterface.h
+++ b/Modules/Adapters/CurlAdapters/include/otbCurlHelperInterface.h
@@ -69,8 +69,8 @@ protected:
   ~CurlHelperInterface() override {}
 
 private:
-  CurlHelperInterface(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  CurlHelperInterface(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 }
diff --git a/Modules/Adapters/CurlAdapters/include/otbCurlHelperStub.h b/Modules/Adapters/CurlAdapters/include/otbCurlHelperStub.h
index 5393b36ff5..956cfd69e1 100644
--- a/Modules/Adapters/CurlAdapters/include/otbCurlHelperStub.h
+++ b/Modules/Adapters/CurlAdapters/include/otbCurlHelperStub.h
@@ -63,8 +63,8 @@ protected:
   ~CurlHelperStub() override {}
 
 private:
-  CurlHelperStub(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  CurlHelperStub(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 
 };
diff --git a/Modules/Adapters/OSSIMAdapters/include/otbDEMConvertAdapter.h b/Modules/Adapters/OSSIMAdapters/include/otbDEMConvertAdapter.h
index 109f67dba7..44cec720e6 100644
--- a/Modules/Adapters/OSSIMAdapters/include/otbDEMConvertAdapter.h
+++ b/Modules/Adapters/OSSIMAdapters/include/otbDEMConvertAdapter.h
@@ -52,8 +52,8 @@ protected:
   ~DEMConvertAdapter() override;
 
 private:
-  DEMConvertAdapter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  DEMConvertAdapter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // namespace otb
diff --git a/Modules/Adapters/OSSIMAdapters/include/otbDateTimeAdapter.h b/Modules/Adapters/OSSIMAdapters/include/otbDateTimeAdapter.h
index 5a0a3d4855..b9b30aa7d5 100644
--- a/Modules/Adapters/OSSIMAdapters/include/otbDateTimeAdapter.h
+++ b/Modules/Adapters/OSSIMAdapters/include/otbDateTimeAdapter.h
@@ -88,8 +88,8 @@ protected:
   ~DateTimeAdapter() override;
 
 private:
-  DateTimeAdapter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  DateTimeAdapter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   ossimLocalTm *m_LocalTm;
 
diff --git a/Modules/Adapters/OSSIMAdapters/include/otbEllipsoidAdapter.h b/Modules/Adapters/OSSIMAdapters/include/otbEllipsoidAdapter.h
index d6a6de8e30..d9e959c037 100644
--- a/Modules/Adapters/OSSIMAdapters/include/otbEllipsoidAdapter.h
+++ b/Modules/Adapters/OSSIMAdapters/include/otbEllipsoidAdapter.h
@@ -70,8 +70,8 @@ protected:
   ~EllipsoidAdapter() override;
 
 private:
-  EllipsoidAdapter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  EllipsoidAdapter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   ossimEllipsoid* m_Ellipsoid;
 };
diff --git a/Modules/Adapters/OSSIMAdapters/include/otbFilterFunctionValues.h b/Modules/Adapters/OSSIMAdapters/include/otbFilterFunctionValues.h
index 2e835d0cde..180e6f06c3 100644
--- a/Modules/Adapters/OSSIMAdapters/include/otbFilterFunctionValues.h
+++ b/Modules/Adapters/OSSIMAdapters/include/otbFilterFunctionValues.h
@@ -109,8 +109,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  FilterFunctionValues(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  FilterFunctionValues(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Vector that contains the filter function value. */
   ValuesVectorType m_FilterFunctionValues;
diff --git a/Modules/Adapters/OSSIMAdapters/include/otbGeometricSarSensorModelAdapter.h b/Modules/Adapters/OSSIMAdapters/include/otbGeometricSarSensorModelAdapter.h
index 02173165dc..f3ad24c5a2 100644
--- a/Modules/Adapters/OSSIMAdapters/include/otbGeometricSarSensorModelAdapter.h
+++ b/Modules/Adapters/OSSIMAdapters/include/otbGeometricSarSensorModelAdapter.h
@@ -81,8 +81,8 @@ protected:
   ~GeometricSarSensorModelAdapter() override;
 
 private:
-  GeometricSarSensorModelAdapter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  GeometricSarSensorModelAdapter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   ossimplugins::ossimGeometricSarSensorModel* m_SensorModel;
 
diff --git a/Modules/Adapters/OSSIMAdapters/include/otbImageKeywordlist.h b/Modules/Adapters/OSSIMAdapters/include/otbImageKeywordlist.h
index 8c55665ce5..e163b7830d 100644
--- a/Modules/Adapters/OSSIMAdapters/include/otbImageKeywordlist.h
+++ b/Modules/Adapters/OSSIMAdapters/include/otbImageKeywordlist.h
@@ -152,7 +152,7 @@ private:
 
 //  char m_Delimiter;
 
-//  void operator=(const Self&); //purposely not implemented
+//  void operator=(const Self&) = delete;
 
 };
 
diff --git a/Modules/Adapters/OSSIMAdapters/include/otbMapProjectionAdapter.h b/Modules/Adapters/OSSIMAdapters/include/otbMapProjectionAdapter.h
index ed71e227f0..c8f8cb4d01 100644
--- a/Modules/Adapters/OSSIMAdapters/include/otbMapProjectionAdapter.h
+++ b/Modules/Adapters/OSSIMAdapters/include/otbMapProjectionAdapter.h
@@ -92,8 +92,8 @@ protected:
   ~MapProjectionAdapter() override;
 
 private:
-  MapProjectionAdapter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  MapProjectionAdapter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   void ApplyParametersToProjection();
 
diff --git a/Modules/Adapters/OSSIMAdapters/include/otbPlatformPositionAdapter.h b/Modules/Adapters/OSSIMAdapters/include/otbPlatformPositionAdapter.h
index ea770482aa..2599f7751b 100644
--- a/Modules/Adapters/OSSIMAdapters/include/otbPlatformPositionAdapter.h
+++ b/Modules/Adapters/OSSIMAdapters/include/otbPlatformPositionAdapter.h
@@ -81,8 +81,8 @@ protected:
   ~PlatformPositionAdapter() override;
 
 private:
-  PlatformPositionAdapter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PlatformPositionAdapter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   ossimplugins::ossimGeometricSarSensorModel* m_SensorModel;
 
diff --git a/Modules/Adapters/OSSIMAdapters/include/otbRPCSolverAdapter.h b/Modules/Adapters/OSSIMAdapters/include/otbRPCSolverAdapter.h
index afb48610e7..68f85a5967 100644
--- a/Modules/Adapters/OSSIMAdapters/include/otbRPCSolverAdapter.h
+++ b/Modules/Adapters/OSSIMAdapters/include/otbRPCSolverAdapter.h
@@ -79,11 +79,11 @@ public:
 
 
 private:
-  RPCSolverAdapter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
-  RPCSolverAdapter(); // purposely not implemented, this class defines
+  RPCSolverAdapter(const Self &) = delete;
+  void operator =(const Self&) = delete;
+  RPCSolverAdapter() = delete;, this class defines
                       // typedefs and exposes static methods
-  virtual ~RPCSolverAdapter(); // purposely not implemented, this class defines
+  virtual ~RPCSolverAdapter() = delete;, this class defines
                               // typedefs and exposes static methods
 };
 
diff --git a/Modules/Adapters/OSSIMAdapters/include/otbSarSensorModelAdapter.h b/Modules/Adapters/OSSIMAdapters/include/otbSarSensorModelAdapter.h
index 82da6e8092..4b26ef8c33 100644
--- a/Modules/Adapters/OSSIMAdapters/include/otbSarSensorModelAdapter.h
+++ b/Modules/Adapters/OSSIMAdapters/include/otbSarSensorModelAdapter.h
@@ -109,8 +109,8 @@ protected:
   virtual ~SarSensorModelAdapter() override;
 
 private:
-  SarSensorModelAdapter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  SarSensorModelAdapter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   InternalModelPointer m_SensorModel;
 };
diff --git a/Modules/Adapters/OSSIMAdapters/include/otbSensorModelAdapter.h b/Modules/Adapters/OSSIMAdapters/include/otbSensorModelAdapter.h
index fe55f03488..816906165c 100644
--- a/Modules/Adapters/OSSIMAdapters/include/otbSensorModelAdapter.h
+++ b/Modules/Adapters/OSSIMAdapters/include/otbSensorModelAdapter.h
@@ -114,8 +114,8 @@ protected:
   ~SensorModelAdapter() override;
 
 private:
-  SensorModelAdapter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  SensorModelAdapter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   InternalMapProjectionPointer m_SensorModel;
 
diff --git a/Modules/Core/Common/include/otbComplexToIntensityImageFilter.h b/Modules/Core/Common/include/otbComplexToIntensityImageFilter.h
index a3faddf351..edbe476f02 100644
--- a/Modules/Core/Common/include/otbComplexToIntensityImageFilter.h
+++ b/Modules/Core/Common/include/otbComplexToIntensityImageFilter.h
@@ -102,8 +102,8 @@ protected:
   ~ComplexToIntensityImageFilter() override {}
 
 private:
-  ComplexToIntensityImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  ComplexToIntensityImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Common/include/otbComplexToVectorImageCastFilter.h b/Modules/Core/Common/include/otbComplexToVectorImageCastFilter.h
index 85598ccecb..82413cdec5 100644
--- a/Modules/Core/Common/include/otbComplexToVectorImageCastFilter.h
+++ b/Modules/Core/Common/include/otbComplexToVectorImageCastFilter.h
@@ -165,8 +165,8 @@ protected:
   }
 
 private:
-  ComplexToVectorImageCastFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  ComplexToVectorImageCastFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Common/include/otbConfigurationManager.h b/Modules/Core/Common/include/otbConfigurationManager.h
index 71e45fe727..5dd079f012 100644
--- a/Modules/Core/Common/include/otbConfigurationManager.h
+++ b/Modules/Core/Common/include/otbConfigurationManager.h
@@ -106,10 +106,10 @@ public:
  
   
 private:
-  ConfigurationManager(); //purposely not implemented
-  ~ConfigurationManager(); //purposely not implemented
-  ConfigurationManager(const ConfigurationManager&); //purposely not implemented
-  void operator =(const ConfigurationManager&); //purposely not implemented
+  ConfigurationManager() = delete;
+  ~ConfigurationManager() = delete;
+  ConfigurationManager(const ConfigurationManager&) = delete;
+  void operator =(const ConfigurationManager&) = delete;
 
 
 };
diff --git a/Modules/Core/Common/include/otbDecimateImageFilter.h b/Modules/Core/Common/include/otbDecimateImageFilter.h
index 69f7afa7c9..c46fdb1519 100644
--- a/Modules/Core/Common/include/otbDecimateImageFilter.h
+++ b/Modules/Core/Common/include/otbDecimateImageFilter.h
@@ -101,8 +101,8 @@ protected:
   virtual void PrintSelf(std::ostream& os, itk::Indent indent) const;
 
 private:
-  DecimateImageFilter (const Self &);   // purposely not implemented
-  void operator =(const Self&);    // purposely not implemented
+  DecimateImageFilter (const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   unsigned int m_DecimationFactor;
 }; // end of class
diff --git a/Modules/Core/Common/include/otbDotProductImageFilter.h b/Modules/Core/Common/include/otbDotProductImageFilter.h
index 1112606aca..ec9a18e583 100644
--- a/Modules/Core/Common/include/otbDotProductImageFilter.h
+++ b/Modules/Core/Common/include/otbDotProductImageFilter.h
@@ -145,8 +145,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  DotProductImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  DotProductImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // end namespace otb
diff --git a/Modules/Core/Common/include/otbExtendedFilenameHelper.h b/Modules/Core/Common/include/otbExtendedFilenameHelper.h
index 549ad2451d..7e4c69f4db 100644
--- a/Modules/Core/Common/include/otbExtendedFilenameHelper.h
+++ b/Modules/Core/Common/include/otbExtendedFilenameHelper.h
@@ -86,8 +86,8 @@ protected:
   ~ExtendedFilenameHelper() override {}
 
 private:
-  ExtendedFilenameHelper(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  ExtendedFilenameHelper(const Self &) = delete;
+  void operator =(const Self&) = delete;
   itkSetStringMacro(SimpleFileName);
 
   std::string                          m_ExtendedFileName;
diff --git a/Modules/Core/Common/include/otbFunctionToImageFilter.h b/Modules/Core/Common/include/otbFunctionToImageFilter.h
index 29098833a9..2b0af570c1 100644
--- a/Modules/Core/Common/include/otbFunctionToImageFilter.h
+++ b/Modules/Core/Common/include/otbFunctionToImageFilter.h
@@ -128,8 +128,8 @@ protected:
                             itk::ThreadIdType threadId) override;
 
 private:
-  FunctionToImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  FunctionToImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** The function that will be evaluated over the image */
   FunctionPointer m_PixelFunction;
diff --git a/Modules/Core/Common/include/otbImageAndVectorImageOperationFilter.h b/Modules/Core/Common/include/otbImageAndVectorImageOperationFilter.h
index 060b01ba29..dd4fb6c937 100644
--- a/Modules/Core/Common/include/otbImageAndVectorImageOperationFilter.h
+++ b/Modules/Core/Common/include/otbImageAndVectorImageOperationFilter.h
@@ -223,8 +223,8 @@ protected:
   void GenerateOutputInformation() override;
 
 private:
-  ImageAndVectorImageOperationFilter(const ImageAndVectorImageOperationFilter &); //purposely not implemented
-  void operator =(const ImageAndVectorImageOperationFilter&); //purposely not implemented
+  ImageAndVectorImageOperationFilter(const ImageAndVectorImageOperationFilter &) = delete;
+  void operator =(const ImageAndVectorImageOperationFilter&) = delete;
 
   bool m_UseAddition;
   bool m_UseMultiplication;
diff --git a/Modules/Core/Common/include/otbImageRegionAdaptativeSplitter.h b/Modules/Core/Common/include/otbImageRegionAdaptativeSplitter.h
index 91bdde5214..8104d9990b 100644
--- a/Modules/Core/Common/include/otbImageRegionAdaptativeSplitter.h
+++ b/Modules/Core/Common/include/otbImageRegionAdaptativeSplitter.h
@@ -157,8 +157,8 @@ private:
   vector */
   void EstimateSplitMap();
 
-  ImageRegionAdaptativeSplitter(const ImageRegionAdaptativeSplitter &); //purposely not implemented
-  void operator =(const ImageRegionAdaptativeSplitter&); //purposely not implemented
+  ImageRegionAdaptativeSplitter(const ImageRegionAdaptativeSplitter &) = delete;
+  void operator =(const ImageRegionAdaptativeSplitter&) = delete;
 
   // This reflects the input image tiling
   SizeType   m_TileHint;
diff --git a/Modules/Core/Common/include/otbImageRegionNonUniformMultidimensionalSplitter.h b/Modules/Core/Common/include/otbImageRegionNonUniformMultidimensionalSplitter.h
index dfd3132fb6..5c59809713 100644
--- a/Modules/Core/Common/include/otbImageRegionNonUniformMultidimensionalSplitter.h
+++ b/Modules/Core/Common/include/otbImageRegionNonUniformMultidimensionalSplitter.h
@@ -111,8 +111,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ImageRegionNonUniformMultidimensionalSplitter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImageRegionNonUniformMultidimensionalSplitter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Common/include/otbImageRegionSquareTileSplitter.h b/Modules/Core/Common/include/otbImageRegionSquareTileSplitter.h
index a26e4f8269..7825a41a29 100644
--- a/Modules/Core/Common/include/otbImageRegionSquareTileSplitter.h
+++ b/Modules/Core/Common/include/otbImageRegionSquareTileSplitter.h
@@ -132,8 +132,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ImageRegionSquareTileSplitter(const ImageRegionSquareTileSplitter &); //purposely not implemented
-  void operator =(const ImageRegionSquareTileSplitter&); //purposely not implemented
+  ImageRegionSquareTileSplitter(const ImageRegionSquareTileSplitter &) = delete;
+  void operator =(const ImageRegionSquareTileSplitter&) = delete;
 
   itk::FixedArray<unsigned int, VImageDimension> m_SplitsPerDimension;
   unsigned int m_TileDimension;
diff --git a/Modules/Core/Common/include/otbImageRegionTileMapSplitter.h b/Modules/Core/Common/include/otbImageRegionTileMapSplitter.h
index 091ff9e88f..7e58227ac8 100644
--- a/Modules/Core/Common/include/otbImageRegionTileMapSplitter.h
+++ b/Modules/Core/Common/include/otbImageRegionTileMapSplitter.h
@@ -128,8 +128,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ImageRegionTileMapSplitter(const ImageRegionTileMapSplitter &); //purposely not implemented
-  void operator =(const ImageRegionTileMapSplitter&); //purposely not implemented
+  ImageRegionTileMapSplitter(const ImageRegionTileMapSplitter &) = delete;
+  void operator =(const ImageRegionTileMapSplitter&) = delete;
 
   unsigned int m_SplitsPerDimension[VImageDimension];
   unsigned int m_AlignStep;
diff --git a/Modules/Core/Common/include/otbImageToModulusAndDirectionImageFilter.h b/Modules/Core/Common/include/otbImageToModulusAndDirectionImageFilter.h
index 32192a6833..8846d0ebd3 100644
--- a/Modules/Core/Common/include/otbImageToModulusAndDirectionImageFilter.h
+++ b/Modules/Core/Common/include/otbImageToModulusAndDirectionImageFilter.h
@@ -94,8 +94,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ImageToModulusAndDirectionImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImageToModulusAndDirectionImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 } // end namespace otb
diff --git a/Modules/Core/Common/include/otbImaginaryImageToComplexImageFilter.h b/Modules/Core/Common/include/otbImaginaryImageToComplexImageFilter.h
index 26e99427a9..b14489c20a 100644
--- a/Modules/Core/Common/include/otbImaginaryImageToComplexImageFilter.h
+++ b/Modules/Core/Common/include/otbImaginaryImageToComplexImageFilter.h
@@ -95,8 +95,8 @@ protected:
   ~ImaginaryImageToComplexImageFilter() override {}
 
 private:
-  ImaginaryImageToComplexImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  ImaginaryImageToComplexImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Common/include/otbImportImageFilter.h b/Modules/Core/Common/include/otbImportImageFilter.h
index 4965422f06..63396d7112 100644
--- a/Modules/Core/Common/include/otbImportImageFilter.h
+++ b/Modules/Core/Common/include/otbImportImageFilter.h
@@ -165,8 +165,8 @@ protected:
   void EnlargeOutputRequestedRegion(itk::DataObject *output) override;
 
 private:
-  ImportImageFilter(const ImportImageFilter &); //purposely not implemented
-  void operator =(const ImportImageFilter&); //purposely not implemented
+  ImportImageFilter(const ImportImageFilter &) = delete;
+  void operator =(const ImportImageFilter&) = delete;
 
   RegionType    m_Region;
   double        m_Spacing[OutputImageType::ImageDimension];
diff --git a/Modules/Core/Common/include/otbImportVectorImageFilter.h b/Modules/Core/Common/include/otbImportVectorImageFilter.h
index b333f99ac9..d4681c48f7 100644
--- a/Modules/Core/Common/include/otbImportVectorImageFilter.h
+++ b/Modules/Core/Common/include/otbImportVectorImageFilter.h
@@ -169,8 +169,8 @@ protected:
   virtual void EnlargeOutputRequestedRegion(itk::DataObject *output);
 
 private:
-  ImportVectorImageFilter(const ImportVectorImageFilter &); //purposely not implemented
-  void operator =(const ImportVectorImageFilter&); //purposely not implemented
+  ImportVectorImageFilter(const ImportVectorImageFilter &) = delete;
+  void operator =(const ImportVectorImageFilter&) = delete;
 
   RegionType    m_Region;
   double        m_Spacing[OutputImageType::ImageDimension];
diff --git a/Modules/Core/Common/include/otbLogger.h b/Modules/Core/Common/include/otbLogger.h
index 0da8d38219..b4c81300ab 100644
--- a/Modules/Core/Common/include/otbLogger.h
+++ b/Modules/Core/Common/include/otbLogger.h
@@ -73,8 +73,8 @@ protected:
   virtual ~Logger() ITK_OVERRIDE;
 
 private:
-  Logger(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  Logger(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   static Pointer CreateInstance();
 
diff --git a/Modules/Core/Common/include/otbModelComponentBase.h b/Modules/Core/Common/include/otbModelComponentBase.h
index 758c887ac9..57b13394dd 100644
--- a/Modules/Core/Common/include/otbModelComponentBase.h
+++ b/Modules/Core/Common/include/otbModelComponentBase.h
@@ -147,8 +147,8 @@ protected:
   ParametersType m_Parameters;
 
 private:
-  ModelComponentBase(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ModelComponentBase(const Self &) = delete;
+  void operator =(const Self&) = delete;
   /** target sample data pointer */
   const TSample* m_Sample;
 
diff --git a/Modules/Core/Common/include/otbQuaternaryFunctorImageFilter.h b/Modules/Core/Common/include/otbQuaternaryFunctorImageFilter.h
index 0373dbf769..8908d95d4c 100644
--- a/Modules/Core/Common/include/otbQuaternaryFunctorImageFilter.h
+++ b/Modules/Core/Common/include/otbQuaternaryFunctorImageFilter.h
@@ -162,8 +162,8 @@ protected:
                             itk::ThreadIdType threadId) override;
 
 private:
-  QuaternaryFunctorImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  QuaternaryFunctorImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   FunctorType m_Functor;
 };
diff --git a/Modules/Core/Common/include/otbRGBAPixelConverter.h b/Modules/Core/Common/include/otbRGBAPixelConverter.h
index 45741fb683..be7389057d 100644
--- a/Modules/Core/Common/include/otbRGBAPixelConverter.h
+++ b/Modules/Core/Common/include/otbRGBAPixelConverter.h
@@ -73,8 +73,8 @@ protected:
   }
 
 private:
-  RGBAPixelConverter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  RGBAPixelConverter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 };
 
 //RGBA to RGBA
@@ -110,8 +110,8 @@ protected:
   }
 
 private:
-  RGBAPixelConverter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  RGBAPixelConverter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 };
 
 //RGBA to RGB
@@ -147,8 +147,8 @@ protected:
   }
 
 private:
-  RGBAPixelConverter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  RGBAPixelConverter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 };
 
 } // end namespace otb
diff --git a/Modules/Core/Common/include/otbRectangle.h b/Modules/Core/Common/include/otbRectangle.h
index 17a90c6c29..b3c5276953 100644
--- a/Modules/Core/Common/include/otbRectangle.h
+++ b/Modules/Core/Common/include/otbRectangle.h
@@ -111,8 +111,8 @@ protected:
   /** */
 
 private:
-  Rectangle(const Self &);    //purposely not implemented
-  void operator =(const Self&);    //purposely not implemented
+  Rectangle(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   ValueType m_Orientation;
   ValueType m_Width;
diff --git a/Modules/Core/Common/include/otbUnaryFunctorImageFilter.h b/Modules/Core/Common/include/otbUnaryFunctorImageFilter.h
index bfffcd8ad2..a1bc073cef 100644
--- a/Modules/Core/Common/include/otbUnaryFunctorImageFilter.h
+++ b/Modules/Core/Common/include/otbUnaryFunctorImageFilter.h
@@ -77,8 +77,8 @@ protected:
   }
 
 private:
-  UnaryFunctorImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  UnaryFunctorImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Common/include/otbUnaryFunctorNeighborhoodVectorImageFilter.h b/Modules/Core/Common/include/otbUnaryFunctorNeighborhoodVectorImageFilter.h
index bdd7dfbf72..99c1ab7b70 100644
--- a/Modules/Core/Common/include/otbUnaryFunctorNeighborhoodVectorImageFilter.h
+++ b/Modules/Core/Common/include/otbUnaryFunctorNeighborhoodVectorImageFilter.h
@@ -132,8 +132,8 @@ protected:
   RadiusType m_Radius;
 
 private:
-  UnaryFunctorNeighborhoodVectorImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  UnaryFunctorNeighborhoodVectorImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   FunctorType m_Functor;
 }; // end of class
diff --git a/Modules/Core/Common/include/otbUnaryFunctorVectorImageFilter.h b/Modules/Core/Common/include/otbUnaryFunctorVectorImageFilter.h
index cd24feafdf..59c5c5090b 100644
--- a/Modules/Core/Common/include/otbUnaryFunctorVectorImageFilter.h
+++ b/Modules/Core/Common/include/otbUnaryFunctorVectorImageFilter.h
@@ -115,8 +115,8 @@ protected:
   void GenerateOutputInformation(void) override;
 
 private:
-  UnaryFunctorVectorImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  UnaryFunctorVectorImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   FunctorType m_Functor;
 }; // end of class
diff --git a/Modules/Core/Common/include/otbUnaryFunctorWithIndexWithOutputSizeImageFilter.h b/Modules/Core/Common/include/otbUnaryFunctorWithIndexWithOutputSizeImageFilter.h
index ddaeca2e00..f17916deec 100644
--- a/Modules/Core/Common/include/otbUnaryFunctorWithIndexWithOutputSizeImageFilter.h
+++ b/Modules/Core/Common/include/otbUnaryFunctorWithIndexWithOutputSizeImageFilter.h
@@ -147,8 +147,8 @@ protected:
   }
 
 private:
-  UnaryFunctorWithIndexWithOutputSizeImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  UnaryFunctorWithIndexWithOutputSizeImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   FunctorType m_Functor;
 };
diff --git a/Modules/Core/Common/include/otbVariableLengthVectorConverter.h b/Modules/Core/Common/include/otbVariableLengthVectorConverter.h
index 79c0c9718c..2e773e1443 100644
--- a/Modules/Core/Common/include/otbVariableLengthVectorConverter.h
+++ b/Modules/Core/Common/include/otbVariableLengthVectorConverter.h
@@ -82,8 +82,8 @@ protected:
   }
 
 private:
-  VariableLengthVectorConverter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  VariableLengthVectorConverter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 };
 
 // VariableLengthVector
@@ -125,8 +125,8 @@ protected:
   }
 
 private:
-  VariableLengthVectorConverter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  VariableLengthVectorConverter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 };
 
 
@@ -166,8 +166,8 @@ protected:
   }
 
 private:
-  VariableLengthVectorConverter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  VariableLengthVectorConverter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 };
 
 
@@ -207,8 +207,8 @@ protected:
   }
 
 private:
-  VariableLengthVectorConverter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  VariableLengthVectorConverter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 };
 
 
@@ -248,8 +248,8 @@ protected:
   }
 
 private:
-  VariableLengthVectorConverter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  VariableLengthVectorConverter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 };
 
 //Histogram
@@ -288,8 +288,8 @@ protected:
   }
 
 private:
-  VariableLengthVectorConverter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  VariableLengthVectorConverter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 };
 
 }// namespace otb
diff --git a/Modules/Core/Common/include/otbVectorImageToASImageAdaptor.h b/Modules/Core/Common/include/otbVectorImageToASImageAdaptor.h
index 9fa9bb3bc4..dffb2b4152 100644
--- a/Modules/Core/Common/include/otbVectorImageToASImageAdaptor.h
+++ b/Modules/Core/Common/include/otbVectorImageToASImageAdaptor.h
@@ -69,8 +69,8 @@ protected:
   ~VectorImageToASImageAdaptor() override {}
 
 private:
-  VectorImageToASImageAdaptor(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VectorImageToASImageAdaptor(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/ImageBase/include/otbExtractROI.h b/Modules/Core/ImageBase/include/otbExtractROI.h
index e094ef471a..1e3c3444bf 100644
--- a/Modules/Core/ImageBase/include/otbExtractROI.h
+++ b/Modules/Core/ImageBase/include/otbExtractROI.h
@@ -93,8 +93,8 @@ protected:
   void GenerateOutputInformation() override;
 
 private:
-  ExtractROI(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ExtractROI(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/ImageBase/include/otbExtractROIBase.h b/Modules/Core/ImageBase/include/otbExtractROIBase.h
index 07906dfe07..864d249b2c 100644
--- a/Modules/Core/ImageBase/include/otbExtractROIBase.h
+++ b/Modules/Core/ImageBase/include/otbExtractROIBase.h
@@ -166,8 +166,8 @@ protected:
   OutputImageRegionType m_OutputImageRegion;
 
 private:
-  ExtractROIBase(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ExtractROIBase(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** X/Y coordinates of the first point of the region to extract. */
   unsigned long m_StartX;
diff --git a/Modules/Core/ImageBase/include/otbImage.h b/Modules/Core/ImageBase/include/otbImage.h
index 73d3e271ad..fade2644fa 100644
--- a/Modules/Core/ImageBase/include/otbImage.h
+++ b/Modules/Core/ImageBase/include/otbImage.h
@@ -256,7 +256,7 @@ protected:
 
 private:
   Image(const Self &) = delete;
-  void operator =(const Self&); //purposely not implemented
+  void operator =(const Self&) = delete;
 
     /** Return the ImageMetadataInterfacePointer associated to the data
    *  and creates it on first call
diff --git a/Modules/Core/ImageBase/include/otbImageFunctionAdaptor.h b/Modules/Core/ImageBase/include/otbImageFunctionAdaptor.h
index 2daa2aaefa..c7ae05be26 100644
--- a/Modules/Core/ImageBase/include/otbImageFunctionAdaptor.h
+++ b/Modules/Core/ImageBase/include/otbImageFunctionAdaptor.h
@@ -115,8 +115,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ImageFunctionAdaptor(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  ImageFunctionAdaptor(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   // Internal Image Function //
   typename InternalImageFunctionType::Pointer    m_InternalImageFunction;
diff --git a/Modules/Core/ImageBase/include/otbImageIOBase.h b/Modules/Core/ImageBase/include/otbImageIOBase.h
index 6a7bf4e12d..a23beed18b 100644
--- a/Modules/Core/ImageBase/include/otbImageIOBase.h
+++ b/Modules/Core/ImageBase/include/otbImageIOBase.h
@@ -549,8 +549,8 @@ protected:
                                                                const itk::ImageIORegion &pasteRegion) const;
 
 private:
-  ImageIOBase(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  ImageIOBase(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   ArrayOfExtensionsType    m_SupportedReadExtensions;
   ArrayOfExtensionsType    m_SupportedWriteExtensions;
diff --git a/Modules/Core/ImageBase/include/otbImageOfVectorsToMonoChannelExtractROI.h b/Modules/Core/ImageBase/include/otbImageOfVectorsToMonoChannelExtractROI.h
index 40c2f86725..ced97e4d6a 100644
--- a/Modules/Core/ImageBase/include/otbImageOfVectorsToMonoChannelExtractROI.h
+++ b/Modules/Core/ImageBase/include/otbImageOfVectorsToMonoChannelExtractROI.h
@@ -106,8 +106,8 @@ protected:
                             itk::ThreadIdType threadId) override;
 
 private:
-  ImageOfVectorsToMonoChannelExtractROI(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImageOfVectorsToMonoChannelExtractROI(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Channel to process [1...] */
   unsigned int m_Channel;
diff --git a/Modules/Core/ImageBase/include/otbMetaImageFunction.h b/Modules/Core/ImageBase/include/otbMetaImageFunction.h
index d8eba8a50a..430e0db2de 100644
--- a/Modules/Core/ImageBase/include/otbMetaImageFunction.h
+++ b/Modules/Core/ImageBase/include/otbMetaImageFunction.h
@@ -106,8 +106,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  MetaImageFunction(const Self& ); //purposely not implemented
-  void operator=(const Self& ); //purposely not implemented
+  MetaImageFunction(const Self& ) = delete;
+  void operator=(const Self& ) = delete;
 
   FunctionContainerType m_FunctionContainer;
 };
diff --git a/Modules/Core/ImageBase/include/otbMultiChannelExtractROI.h b/Modules/Core/ImageBase/include/otbMultiChannelExtractROI.h
index cf17b63d3c..ad7a6b1dfa 100644
--- a/Modules/Core/ImageBase/include/otbMultiChannelExtractROI.h
+++ b/Modules/Core/ImageBase/include/otbMultiChannelExtractROI.h
@@ -140,8 +140,8 @@ protected:
                             itk::ThreadIdType threadId) override;
 
 private:
-  MultiChannelExtractROI(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  MultiChannelExtractROI(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** First/ last channel to process [1...] */
   unsigned int m_FirstChannel;
diff --git a/Modules/Core/ImageBase/include/otbMultiToMonoChannelExtractROI.h b/Modules/Core/ImageBase/include/otbMultiToMonoChannelExtractROI.h
index 4733af5450..bc36862211 100644
--- a/Modules/Core/ImageBase/include/otbMultiToMonoChannelExtractROI.h
+++ b/Modules/Core/ImageBase/include/otbMultiToMonoChannelExtractROI.h
@@ -113,8 +113,8 @@ protected:
                             itk::ThreadIdType threadId) override;
 
 private:
-  MultiToMonoChannelExtractROI(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  MultiToMonoChannelExtractROI(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Channel to process [1...] */
   unsigned int m_Channel;
diff --git a/Modules/Core/ImageBase/include/otbVectorImage.h b/Modules/Core/ImageBase/include/otbVectorImage.h
index dcb2ec2377..bf6ebaaaca 100644
--- a/Modules/Core/ImageBase/include/otbVectorImage.h
+++ b/Modules/Core/ImageBase/include/otbVectorImage.h
@@ -197,8 +197,8 @@ protected:
   ~VectorImage() override {}
 
 private:
-  VectorImage(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VectorImage(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Return the ImageMetadataInterfacePointer associated to the data
    *  and creates it on first call
diff --git a/Modules/Core/Interpolation/include/otbBCOInterpolateImageFunction.h b/Modules/Core/Interpolation/include/otbBCOInterpolateImageFunction.h
index 6acb8b23ac..9e758654c9 100644
--- a/Modules/Core/Interpolation/include/otbBCOInterpolateImageFunction.h
+++ b/Modules/Core/Interpolation/include/otbBCOInterpolateImageFunction.h
@@ -126,8 +126,8 @@ protected:
   double                 m_Alpha;
 
 private:
-  BCOInterpolateImageFunctionBase( const Self& ); //purposely not implemented
-  void operator=( const Self& ); //purposely not implemented
+  BCOInterpolateImageFunctionBase( const Self& ) = delete;
+  void operator=( const Self& ) = delete;
 
 };
 
@@ -165,8 +165,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  BCOInterpolateImageFunction( const Self& ); //purposely not implemented
-  void operator=( const Self& ); //purposely not implemented
+  BCOInterpolateImageFunction( const Self& ) = delete;
+  void operator=( const Self& ) = delete;
 };
 
 
@@ -204,8 +204,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  BCOInterpolateImageFunction( const Self& ); //purposely not implemented
-  void operator=( const Self& ); //purposely not implemented
+  BCOInterpolateImageFunction( const Self& ) = delete;
+  void operator=( const Self& ) = delete;
 };
 
 } // end namespace otb
diff --git a/Modules/Core/Interpolation/include/otbBSplineDecompositionImageFilter.h b/Modules/Core/Interpolation/include/otbBSplineDecompositionImageFilter.h
index 627b18af54..5a4efef22b 100644
--- a/Modules/Core/Interpolation/include/otbBSplineDecompositionImageFilter.h
+++ b/Modules/Core/Interpolation/include/otbBSplineDecompositionImageFilter.h
@@ -92,8 +92,8 @@ protected:
   unsigned int m_IteratorDirection;              // Direction for iterator incrementing
 
 private:
-  BSplineDecompositionImageFilter(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  BSplineDecompositionImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Determines the poles given the Spline Order. */
   virtual void SetPoles();
diff --git a/Modules/Core/Interpolation/include/otbBSplineInterpolateImageFunction.h b/Modules/Core/Interpolation/include/otbBSplineInterpolateImageFunction.h
index fb653f3beb..20fc576db7 100644
--- a/Modules/Core/Interpolation/include/otbBSplineInterpolateImageFunction.h
+++ b/Modules/Core/Interpolation/include/otbBSplineInterpolateImageFunction.h
@@ -140,7 +140,7 @@ public:
 protected:
   BSplineInterpolateImageFunction();
   ~BSplineInterpolateImageFunction() override {}
-  void operator =(const Self&);  //purposely not implemented
+  void operator =(const Self&) = delete;
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
   // These are needed by the smoothing spline routine.
@@ -151,7 +151,7 @@ protected:
   typename CoefficientImageType::ConstPointer m_Coefficients;       // Spline coefficients
 
 private:
-  BSplineInterpolateImageFunction(const Self &);  //purposely not implemented
+  BSplineInterpolateImageFunction(const Self &) = delete;
   /** Determines the weights for interpolation of the value x */
   void SetInterpolationWeights(const ContinuousIndexType& x,
                                const vnl_matrix<long>& EvaluateIndex,
diff --git a/Modules/Core/Interpolation/include/otbGenericInterpolateImageFunction.h b/Modules/Core/Interpolation/include/otbGenericInterpolateImageFunction.h
index 1119453b2b..32cf44b794 100644
--- a/Modules/Core/Interpolation/include/otbGenericInterpolateImageFunction.h
+++ b/Modules/Core/Interpolation/include/otbGenericInterpolateImageFunction.h
@@ -130,8 +130,8 @@ protected:
   virtual void FillWeightOffsetTable();
 
 private:
-  GenericInterpolateImageFunction(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  GenericInterpolateImageFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
   /** Store the window radius. */
   //unsigned int m_Radius;
   // Constant to store twice the radius
diff --git a/Modules/Core/Interpolation/include/otbProlateInterpolateImageFunction.h b/Modules/Core/Interpolation/include/otbProlateInterpolateImageFunction.h
index 1a057edfce..ce501c9632 100644
--- a/Modules/Core/Interpolation/include/otbProlateInterpolateImageFunction.h
+++ b/Modules/Core/Interpolation/include/otbProlateInterpolateImageFunction.h
@@ -317,8 +317,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ProlateInterpolateImageFunction(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ProlateInterpolateImageFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // end namespace otb
diff --git a/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageBlackmanFunction.h b/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageBlackmanFunction.h
index 36d1d72264..bb29e36da2 100644
--- a/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageBlackmanFunction.h
+++ b/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageBlackmanFunction.h
@@ -141,8 +141,8 @@ protected:
   }
 
 private:
-  WindowedSincInterpolateImageBlackmanFunction(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  WindowedSincInterpolateImageBlackmanFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // end namespace otb
diff --git a/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageCosineFunction.h b/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageCosineFunction.h
index 94cae64c24..e3d6fa98f1 100644
--- a/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageCosineFunction.h
+++ b/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageCosineFunction.h
@@ -134,8 +134,8 @@ protected:
   }
 
 private:
-  WindowedSincInterpolateImageCosineFunction(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  WindowedSincInterpolateImageCosineFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // end namespace otb
diff --git a/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageFunctionBase.h b/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageFunctionBase.h
index 57703395ba..4de1c9940b 100644
--- a/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageFunctionBase.h
+++ b/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageFunctionBase.h
@@ -183,8 +183,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  WindowedSincInterpolateImageFunctionBase(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  WindowedSincInterpolateImageFunctionBase(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // end namespace itk
diff --git a/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageGaussianFunction.h b/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageGaussianFunction.h
index ce0358ded4..411cfc3d10 100644
--- a/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageGaussianFunction.h
+++ b/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageGaussianFunction.h
@@ -134,8 +134,8 @@ protected:
   }
 
 private:
-  WindowedSincInterpolateImageGaussianFunction(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  WindowedSincInterpolateImageGaussianFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // end namespace otb
diff --git a/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageHammingFunction.h b/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageHammingFunction.h
index 31fca5a236..c95a0679a7 100644
--- a/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageHammingFunction.h
+++ b/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageHammingFunction.h
@@ -135,8 +135,8 @@ protected:
   }
 
 private:
-  WindowedSincInterpolateImageHammingFunction(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  WindowedSincInterpolateImageHammingFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // end namespace otb
diff --git a/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageLanczosFunction.h b/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageLanczosFunction.h
index 38da528f66..737fc06f20 100644
--- a/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageLanczosFunction.h
+++ b/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageLanczosFunction.h
@@ -145,8 +145,8 @@ protected:
   }
 
 private:
-  WindowedSincInterpolateImageLanczosFunction(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  WindowedSincInterpolateImageLanczosFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // end namespace otb
diff --git a/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageWelchFunction.h b/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageWelchFunction.h
index 24245cea27..228a8e68b2 100644
--- a/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageWelchFunction.h
+++ b/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageWelchFunction.h
@@ -134,8 +134,8 @@ protected:
   }
 
 private:
-  WindowedSincInterpolateImageWelchFunction(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  WindowedSincInterpolateImageWelchFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // end namespace otb
diff --git a/Modules/Core/LabelMap/include/otbAttributesMapLabelObject.h b/Modules/Core/LabelMap/include/otbAttributesMapLabelObject.h
index 4918ff363d..46c83d865f 100644
--- a/Modules/Core/LabelMap/include/otbAttributesMapLabelObject.h
+++ b/Modules/Core/LabelMap/include/otbAttributesMapLabelObject.h
@@ -320,8 +320,8 @@ protected:
       }
   }
 private:
-  AttributesMapLabelObject(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  AttributesMapLabelObject(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** The attributes map */
   AttributesMapType m_Attributes;
diff --git a/Modules/Core/LabelMap/include/otbAttributesMapLabelObjectWithClassLabel.h b/Modules/Core/LabelMap/include/otbAttributesMapLabelObjectWithClassLabel.h
index f9d822cdd6..2901522f0e 100644
--- a/Modules/Core/LabelMap/include/otbAttributesMapLabelObjectWithClassLabel.h
+++ b/Modules/Core/LabelMap/include/otbAttributesMapLabelObjectWithClassLabel.h
@@ -142,8 +142,8 @@ protected:
     }
 
 private:
-  AttributesMapLabelObjectWithClassLabel(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  AttributesMapLabelObjectWithClassLabel(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   /** The class label */
   ClassLabelType m_ClassLabel;
diff --git a/Modules/Core/LabelMap/include/otbAttributesMapOpeningLabelMapFilter.h b/Modules/Core/LabelMap/include/otbAttributesMapOpeningLabelMapFilter.h
index c8a138ffec..166517718c 100644
--- a/Modules/Core/LabelMap/include/otbAttributesMapOpeningLabelMapFilter.h
+++ b/Modules/Core/LabelMap/include/otbAttributesMapOpeningLabelMapFilter.h
@@ -84,8 +84,8 @@ protected:
 
 
 private:
-  AttributesMapOpeningLabelMapFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  AttributesMapOpeningLabelMapFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   AttributeAccessorType  m_Accessor;
 
diff --git a/Modules/Core/LabelMap/include/otbBandsStatisticsAttributesLabelMapFilter.h b/Modules/Core/LabelMap/include/otbBandsStatisticsAttributesLabelMapFilter.h
index 89ffbe2326..75a56344e1 100644
--- a/Modules/Core/LabelMap/include/otbBandsStatisticsAttributesLabelMapFilter.h
+++ b/Modules/Core/LabelMap/include/otbBandsStatisticsAttributesLabelMapFilter.h
@@ -206,8 +206,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  BandsStatisticsAttributesLabelMapFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  BandsStatisticsAttributesLabelMapFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 }; // end of class
 
diff --git a/Modules/Core/LabelMap/include/otbImageToLabelMapWithAttributesFilter.h b/Modules/Core/LabelMap/include/otbImageToLabelMapWithAttributesFilter.h
index 985e57cb96..04487819d1 100644
--- a/Modules/Core/LabelMap/include/otbImageToLabelMapWithAttributesFilter.h
+++ b/Modules/Core/LabelMap/include/otbImageToLabelMapWithAttributesFilter.h
@@ -93,8 +93,8 @@ protected:
 
 
 private:
-  ImageToLabelMapWithAttributesFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  ImageToLabelMapWithAttributesFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   typename LabelMapType::Pointer   m_Output;
 
diff --git a/Modules/Core/LabelMap/include/otbKMeansAttributesLabelMapFilter.h b/Modules/Core/LabelMap/include/otbKMeansAttributesLabelMapFilter.h
index d65e2b3c04..25ada97fee 100644
--- a/Modules/Core/LabelMap/include/otbKMeansAttributesLabelMapFilter.h
+++ b/Modules/Core/LabelMap/include/otbKMeansAttributesLabelMapFilter.h
@@ -127,8 +127,8 @@ protected:
 
 
 private:
-  KMeansAttributesLabelMapFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  KMeansAttributesLabelMapFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   InputImagePointer m_InputLabelMap;
   CentroidsVectorType m_Centroids;
diff --git a/Modules/Core/LabelMap/include/otbLabelImageToLabelMapWithAdjacencyFilter.h b/Modules/Core/LabelMap/include/otbLabelImageToLabelMapWithAdjacencyFilter.h
index 2e3c61d5c8..7afab7bc58 100644
--- a/Modules/Core/LabelMap/include/otbLabelImageToLabelMapWithAdjacencyFilter.h
+++ b/Modules/Core/LabelMap/include/otbLabelImageToLabelMapWithAdjacencyFilter.h
@@ -143,8 +143,8 @@ protected:
 
 
 private:
-  LabelImageToLabelMapWithAdjacencyFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  LabelImageToLabelMapWithAdjacencyFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   OutputImagePixelType m_BackgroundValue;
 
diff --git a/Modules/Core/LabelMap/include/otbLabelMapFeaturesFunctorImageFilter.h b/Modules/Core/LabelMap/include/otbLabelMapFeaturesFunctorImageFilter.h
index 56083fc5c7..be6dbe1b15 100644
--- a/Modules/Core/LabelMap/include/otbLabelMapFeaturesFunctorImageFilter.h
+++ b/Modules/Core/LabelMap/include/otbLabelMapFeaturesFunctorImageFilter.h
@@ -114,8 +114,8 @@ protected:
   }
 
 private:
-  LabelMapFeaturesFunctorImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  LabelMapFeaturesFunctorImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** The functor */
   FunctorType m_Functor;
diff --git a/Modules/Core/LabelMap/include/otbLabelMapSource.h b/Modules/Core/LabelMap/include/otbLabelMapSource.h
index a03be1bd83..bdc32d74aa 100644
--- a/Modules/Core/LabelMap/include/otbLabelMapSource.h
+++ b/Modules/Core/LabelMap/include/otbLabelMapSource.h
@@ -72,8 +72,8 @@ protected:
   virtual void  AllocateOutputs();
 
 private:
-  LabelMapSource(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  LabelMapSource(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/LabelMap/include/otbLabelMapToLabelImageFilter.h b/Modules/Core/LabelMap/include/otbLabelMapToLabelImageFilter.h
index 7b4ac894a3..6df4c11ff0 100644
--- a/Modules/Core/LabelMap/include/otbLabelMapToLabelImageFilter.h
+++ b/Modules/Core/LabelMap/include/otbLabelMapToLabelImageFilter.h
@@ -88,8 +88,8 @@ protected:
   void EnlargeOutputRequestedRegion(itk::DataObject *){};
 
 private:
-  LabelMapToLabelImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  LabelMapToLabelImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
 }; // end of class
 
diff --git a/Modules/Core/LabelMap/include/otbLabelMapToSampleListFilter.h b/Modules/Core/LabelMap/include/otbLabelMapToSampleListFilter.h
index 55040a6e5e..e2e0196934 100644
--- a/Modules/Core/LabelMap/include/otbLabelMapToSampleListFilter.h
+++ b/Modules/Core/LabelMap/include/otbLabelMapToSampleListFilter.h
@@ -107,8 +107,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  LabelMapToSampleListFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  LabelMapToSampleListFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   /** The functor used to build the measurement vector */
   MeasurementFunctorType        m_MeasurementFunctor;
diff --git a/Modules/Core/LabelMap/include/otbLabelMapWithAdjacency.h b/Modules/Core/LabelMap/include/otbLabelMapWithAdjacency.h
index 3400aec812..346bff8d8a 100644
--- a/Modules/Core/LabelMap/include/otbLabelMapWithAdjacency.h
+++ b/Modules/Core/LabelMap/include/otbLabelMapWithAdjacency.h
@@ -241,8 +241,8 @@ protected:
   }
 
 private:
-  LabelMapWithAdjacency(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  LabelMapWithAdjacency(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   /** The adjacency map */
   AdjacencyMapType m_AdjacencyMap;
diff --git a/Modules/Core/LabelMap/include/otbLabelMapWithClassLabelToClassLabelImageFilter.h b/Modules/Core/LabelMap/include/otbLabelMapWithClassLabelToClassLabelImageFilter.h
index ccc3a6dd45..d1ff1f0703 100644
--- a/Modules/Core/LabelMap/include/otbLabelMapWithClassLabelToClassLabelImageFilter.h
+++ b/Modules/Core/LabelMap/include/otbLabelMapWithClassLabelToClassLabelImageFilter.h
@@ -82,8 +82,8 @@ protected:
   void ThreadedProcessLabelObject( LabelObjectType * labelObject ) override;
 
 private:
-  LabelMapWithClassLabelToClassLabelImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  LabelMapWithClassLabelToClassLabelImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
 }; // end of class
 
diff --git a/Modules/Core/LabelMap/include/otbLabelMapWithClassLabelToLabeledSampleListFilter.h b/Modules/Core/LabelMap/include/otbLabelMapWithClassLabelToLabeledSampleListFilter.h
index cd4bc3086e..c0ec1bf654 100644
--- a/Modules/Core/LabelMap/include/otbLabelMapWithClassLabelToLabeledSampleListFilter.h
+++ b/Modules/Core/LabelMap/include/otbLabelMapWithClassLabelToLabeledSampleListFilter.h
@@ -111,8 +111,8 @@ protected:
   using Superclass::MakeOutput;
 
 private:
-  LabelMapWithClassLabelToLabeledSampleListFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  LabelMapWithClassLabelToLabeledSampleListFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   /** The functor used to build the measurement vector */
   MeasurementFunctorType              m_MeasurementFunctor;
diff --git a/Modules/Core/LabelMap/include/otbMinMaxAttributesLabelMapFilter.h b/Modules/Core/LabelMap/include/otbMinMaxAttributesLabelMapFilter.h
index 96ae25ce4c..5bfb512b33 100644
--- a/Modules/Core/LabelMap/include/otbMinMaxAttributesLabelMapFilter.h
+++ b/Modules/Core/LabelMap/include/otbMinMaxAttributesLabelMapFilter.h
@@ -99,8 +99,8 @@ protected:
   void GenerateData() override;
 
 private:
-  MinMaxAttributesLabelMapFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  MinMaxAttributesLabelMapFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   //typedef typename InputImageType::LabelObjectContainerType   LabelObjectContainerType;
   //typedef typename LabelObjectContainerType::const_iterator   LabelObjectContainerConstIterator;
diff --git a/Modules/Core/LabelMap/include/otbNormalizeAttributesLabelMapFilter.h b/Modules/Core/LabelMap/include/otbNormalizeAttributesLabelMapFilter.h
index afc376eabe..d255c9c260 100644
--- a/Modules/Core/LabelMap/include/otbNormalizeAttributesLabelMapFilter.h
+++ b/Modules/Core/LabelMap/include/otbNormalizeAttributesLabelMapFilter.h
@@ -149,8 +149,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  NormalizeAttributesLabelMapFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  NormalizeAttributesLabelMapFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 }; // end of class
 
diff --git a/Modules/Core/LabelMap/include/otbShapeAttributesLabelMapFilter.h b/Modules/Core/LabelMap/include/otbShapeAttributesLabelMapFilter.h
index 083b4b7c1f..f170e49e69 100644
--- a/Modules/Core/LabelMap/include/otbShapeAttributesLabelMapFilter.h
+++ b/Modules/Core/LabelMap/include/otbShapeAttributesLabelMapFilter.h
@@ -303,8 +303,8 @@ protected:
   void EnlargeOutputRequestedRegion(itk::DataObject *) override{};
 
 private:
-  ShapeAttributesLabelMapFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ShapeAttributesLabelMapFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 }; // end of class
 
diff --git a/Modules/Core/LabelMap/include/otbStatisticsAttributesLabelMapFilter.h b/Modules/Core/LabelMap/include/otbStatisticsAttributesLabelMapFilter.h
index 3f2826b789..117e5e4382 100644
--- a/Modules/Core/LabelMap/include/otbStatisticsAttributesLabelMapFilter.h
+++ b/Modules/Core/LabelMap/include/otbStatisticsAttributesLabelMapFilter.h
@@ -204,8 +204,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  StatisticsAttributesLabelMapFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  StatisticsAttributesLabelMapFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 }; // end of class
 
 } // end namespace otb
diff --git a/Modules/Core/Metadata/include/otbDefaultImageMetadataInterface.h b/Modules/Core/Metadata/include/otbDefaultImageMetadataInterface.h
index f81e74966a..77bdcbb870 100644
--- a/Modules/Core/Metadata/include/otbDefaultImageMetadataInterface.h
+++ b/Modules/Core/Metadata/include/otbDefaultImageMetadataInterface.h
@@ -197,8 +197,8 @@ protected:
 
 private:
 
-  DefaultImageMetadataInterface(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  DefaultImageMetadataInterface(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Metadata/include/otbDefaultImageMetadataInterfaceFactory.h b/Modules/Core/Metadata/include/otbDefaultImageMetadataInterfaceFactory.h
index 0f19d38b83..c904948e31 100644
--- a/Modules/Core/Metadata/include/otbDefaultImageMetadataInterfaceFactory.h
+++ b/Modules/Core/Metadata/include/otbDefaultImageMetadataInterfaceFactory.h
@@ -63,8 +63,8 @@ protected:
   ~DefaultImageMetadataInterfaceFactory() override;
 
 private:
-  DefaultImageMetadataInterfaceFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  DefaultImageMetadataInterfaceFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Metadata/include/otbFormosatImageMetadataInterface.h b/Modules/Core/Metadata/include/otbFormosatImageMetadataInterface.h
index 271d3d8d81..967c0121d7 100644
--- a/Modules/Core/Metadata/include/otbFormosatImageMetadataInterface.h
+++ b/Modules/Core/Metadata/include/otbFormosatImageMetadataInterface.h
@@ -132,8 +132,8 @@ protected:
 
 private:
 
-  FormosatImageMetadataInterface(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  FormosatImageMetadataInterface(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Metadata/include/otbFormosatImageMetadataInterfaceFactory.h b/Modules/Core/Metadata/include/otbFormosatImageMetadataInterfaceFactory.h
index 372212d77d..a779c8cf15 100644
--- a/Modules/Core/Metadata/include/otbFormosatImageMetadataInterfaceFactory.h
+++ b/Modules/Core/Metadata/include/otbFormosatImageMetadataInterfaceFactory.h
@@ -62,8 +62,8 @@ protected:
   ~FormosatImageMetadataInterfaceFactory() override;
 
 private:
-  FormosatImageMetadataInterfaceFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  FormosatImageMetadataInterfaceFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Metadata/include/otbIkonosImageMetadataInterface.h b/Modules/Core/Metadata/include/otbIkonosImageMetadataInterface.h
index 6d39a3eafd..c2224378b5 100644
--- a/Modules/Core/Metadata/include/otbIkonosImageMetadataInterface.h
+++ b/Modules/Core/Metadata/include/otbIkonosImageMetadataInterface.h
@@ -117,8 +117,8 @@ protected:
 
 private:
 
-  IkonosImageMetadataInterface(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  IkonosImageMetadataInterface(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Metadata/include/otbIkonosImageMetadataInterfaceFactory.h b/Modules/Core/Metadata/include/otbIkonosImageMetadataInterfaceFactory.h
index b19c1e4d3a..ee4ff5d17f 100644
--- a/Modules/Core/Metadata/include/otbIkonosImageMetadataInterfaceFactory.h
+++ b/Modules/Core/Metadata/include/otbIkonosImageMetadataInterfaceFactory.h
@@ -62,8 +62,8 @@ protected:
   ~IkonosImageMetadataInterfaceFactory() override;
 
 private:
-  IkonosImageMetadataInterfaceFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  IkonosImageMetadataInterfaceFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Metadata/include/otbImageMetadataInterfaceBase.h b/Modules/Core/Metadata/include/otbImageMetadataInterfaceBase.h
index 218cbe12ae..6437618cab 100644
--- a/Modules/Core/Metadata/include/otbImageMetadataInterfaceBase.h
+++ b/Modules/Core/Metadata/include/otbImageMetadataInterfaceBase.h
@@ -221,8 +221,8 @@ protected:
   MetaDataDictionaryType m_MetaDataDictionary;
 
 private:
-  ImageMetadataInterfaceBase(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImageMetadataInterfaceBase(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   OTB_GCP            m_GCP;
 };
diff --git a/Modules/Core/Metadata/include/otbImageMetadataInterfaceFactory.h b/Modules/Core/Metadata/include/otbImageMetadataInterfaceFactory.h
index 0b1f1fd78e..a69ac14f28 100644
--- a/Modules/Core/Metadata/include/otbImageMetadataInterfaceFactory.h
+++ b/Modules/Core/Metadata/include/otbImageMetadataInterfaceFactory.h
@@ -64,8 +64,8 @@ protected:
   ~ImageMetadataInterfaceFactory() override;
 
 private:
-  ImageMetadataInterfaceFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImageMetadataInterfaceFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Metadata/include/otbOpticalDefaultImageMetadataInterface.h b/Modules/Core/Metadata/include/otbOpticalDefaultImageMetadataInterface.h
index dcd33a7426..9a78796c59 100644
--- a/Modules/Core/Metadata/include/otbOpticalDefaultImageMetadataInterface.h
+++ b/Modules/Core/Metadata/include/otbOpticalDefaultImageMetadataInterface.h
@@ -183,8 +183,8 @@ protected:
 
 private:
 
-  OpticalDefaultImageMetadataInterface(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  OpticalDefaultImageMetadataInterface(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Metadata/include/otbOpticalDefaultImageMetadataInterfaceFactory.h b/Modules/Core/Metadata/include/otbOpticalDefaultImageMetadataInterfaceFactory.h
index e4226adf6b..5a24ad7c27 100644
--- a/Modules/Core/Metadata/include/otbOpticalDefaultImageMetadataInterfaceFactory.h
+++ b/Modules/Core/Metadata/include/otbOpticalDefaultImageMetadataInterfaceFactory.h
@@ -63,8 +63,8 @@ protected:
   ~OpticalDefaultImageMetadataInterfaceFactory() override;
 
 private:
-  OpticalDefaultImageMetadataInterfaceFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  OpticalDefaultImageMetadataInterfaceFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Metadata/include/otbOpticalImageMetadataInterface.h b/Modules/Core/Metadata/include/otbOpticalImageMetadataInterface.h
index 8a94830980..6613bc0a02 100644
--- a/Modules/Core/Metadata/include/otbOpticalImageMetadataInterface.h
+++ b/Modules/Core/Metadata/include/otbOpticalImageMetadataInterface.h
@@ -105,8 +105,8 @@ protected:
 
 
 private:
-  OpticalImageMetadataInterface(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  OpticalImageMetadataInterface(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Metadata/include/otbOpticalImageMetadataInterfaceFactory.h b/Modules/Core/Metadata/include/otbOpticalImageMetadataInterfaceFactory.h
index a543c766e0..dc45bbbf51 100644
--- a/Modules/Core/Metadata/include/otbOpticalImageMetadataInterfaceFactory.h
+++ b/Modules/Core/Metadata/include/otbOpticalImageMetadataInterfaceFactory.h
@@ -64,8 +64,8 @@ protected:
   ~OpticalImageMetadataInterfaceFactory() override;
 
 private:
-  OpticalImageMetadataInterfaceFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  OpticalImageMetadataInterfaceFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Metadata/include/otbPleiadesImageMetadataInterface.h b/Modules/Core/Metadata/include/otbPleiadesImageMetadataInterface.h
index 65412134ca..2f1d1f0184 100644
--- a/Modules/Core/Metadata/include/otbPleiadesImageMetadataInterface.h
+++ b/Modules/Core/Metadata/include/otbPleiadesImageMetadataInterface.h
@@ -130,8 +130,8 @@ protected:
 
 private:
 
-  PleiadesImageMetadataInterface(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PleiadesImageMetadataInterface(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Metadata/include/otbPleiadesImageMetadataInterfaceFactory.h b/Modules/Core/Metadata/include/otbPleiadesImageMetadataInterfaceFactory.h
index a1a9578445..b8a73ef72f 100644
--- a/Modules/Core/Metadata/include/otbPleiadesImageMetadataInterfaceFactory.h
+++ b/Modules/Core/Metadata/include/otbPleiadesImageMetadataInterfaceFactory.h
@@ -62,8 +62,8 @@ protected:
   ~PleiadesImageMetadataInterfaceFactory() override;
 
 private:
-  PleiadesImageMetadataInterfaceFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PleiadesImageMetadataInterfaceFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Metadata/include/otbQuickBirdImageMetadataInterface.h b/Modules/Core/Metadata/include/otbQuickBirdImageMetadataInterface.h
index 836056c5f1..72d46c5abf 100644
--- a/Modules/Core/Metadata/include/otbQuickBirdImageMetadataInterface.h
+++ b/Modules/Core/Metadata/include/otbQuickBirdImageMetadataInterface.h
@@ -116,8 +116,8 @@ protected:
 
 private:
 
-  QuickBirdImageMetadataInterface(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  QuickBirdImageMetadataInterface(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Metadata/include/otbQuickBirdImageMetadataInterfaceFactory.h b/Modules/Core/Metadata/include/otbQuickBirdImageMetadataInterfaceFactory.h
index bd00c02bf7..3dbd158547 100644
--- a/Modules/Core/Metadata/include/otbQuickBirdImageMetadataInterfaceFactory.h
+++ b/Modules/Core/Metadata/include/otbQuickBirdImageMetadataInterfaceFactory.h
@@ -62,8 +62,8 @@ protected:
   ~QuickBirdImageMetadataInterfaceFactory() override;
 
 private:
-  QuickBirdImageMetadataInterfaceFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  QuickBirdImageMetadataInterfaceFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Metadata/include/otbRadarsat2ImageMetadataInterface.h b/Modules/Core/Metadata/include/otbRadarsat2ImageMetadataInterface.h
index 2c4d231fb3..e6a08303e6 100644
--- a/Modules/Core/Metadata/include/otbRadarsat2ImageMetadataInterface.h
+++ b/Modules/Core/Metadata/include/otbRadarsat2ImageMetadataInterface.h
@@ -102,8 +102,8 @@ protected:
   ~Radarsat2ImageMetadataInterface() override {}
 
 private:
-  Radarsat2ImageMetadataInterface(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  Radarsat2ImageMetadataInterface(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 /* Helper function to parse date and time into a std::vector<std::string>
  * using boost::split() expect date time in yyyy-mm-ddThh:mm:ss.ms
@@ -192,8 +192,8 @@ public:
 
 private:
 
-  Radarsat2CalibrationLookupData(const Self&); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  Radarsat2CalibrationLookupData(const Self&) = delete;
+  void operator =(const Self&) = delete;
 
   GainListType m_Gains;
   int m_Offset;
diff --git a/Modules/Core/Metadata/include/otbRadarsat2ImageMetadataInterfaceFactory.h b/Modules/Core/Metadata/include/otbRadarsat2ImageMetadataInterfaceFactory.h
index df837f6e6e..b75636be55 100644
--- a/Modules/Core/Metadata/include/otbRadarsat2ImageMetadataInterfaceFactory.h
+++ b/Modules/Core/Metadata/include/otbRadarsat2ImageMetadataInterfaceFactory.h
@@ -62,8 +62,8 @@ protected:
   ~Radarsat2ImageMetadataInterfaceFactory() override;
 
 private:
-  Radarsat2ImageMetadataInterfaceFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  Radarsat2ImageMetadataInterfaceFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Metadata/include/otbSarCalibrationLookupData.h b/Modules/Core/Metadata/include/otbSarCalibrationLookupData.h
index 04328dfaff..ff3b85db86 100644
--- a/Modules/Core/Metadata/include/otbSarCalibrationLookupData.h
+++ b/Modules/Core/Metadata/include/otbSarCalibrationLookupData.h
@@ -83,8 +83,8 @@ class OTBMetadata_EXPORT SarCalibrationLookupData : public itk::LightObject {
 
 private:
 
-  SarCalibrationLookupData(const Self&); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  SarCalibrationLookupData(const Self&) = delete;
+  void operator =(const Self&) = delete;
   short m_Type;
 
 };
diff --git a/Modules/Core/Metadata/include/otbSarDefaultImageMetadataInterface.h b/Modules/Core/Metadata/include/otbSarDefaultImageMetadataInterface.h
index 0782320bfd..ba19e81005 100644
--- a/Modules/Core/Metadata/include/otbSarDefaultImageMetadataInterface.h
+++ b/Modules/Core/Metadata/include/otbSarDefaultImageMetadataInterface.h
@@ -211,8 +211,8 @@ protected:
 
 private:
 
-  SarDefaultImageMetadataInterface(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  SarDefaultImageMetadataInterface(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Metadata/include/otbSarDefaultImageMetadataInterfaceFactory.h b/Modules/Core/Metadata/include/otbSarDefaultImageMetadataInterfaceFactory.h
index 3d30545b75..9a473b8936 100644
--- a/Modules/Core/Metadata/include/otbSarDefaultImageMetadataInterfaceFactory.h
+++ b/Modules/Core/Metadata/include/otbSarDefaultImageMetadataInterfaceFactory.h
@@ -63,8 +63,8 @@ protected:
   ~SarDefaultImageMetadataInterfaceFactory() override;
 
 private:
-  SarDefaultImageMetadataInterfaceFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  SarDefaultImageMetadataInterfaceFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Metadata/include/otbSarImageMetadataInterface.h b/Modules/Core/Metadata/include/otbSarImageMetadataInterface.h
index efd60bd15e..f5fa66d20e 100644
--- a/Modules/Core/Metadata/include/otbSarImageMetadataInterface.h
+++ b/Modules/Core/Metadata/include/otbSarImageMetadataInterface.h
@@ -123,8 +123,8 @@ protected:
 
 
 private:
-  SarImageMetadataInterface(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  SarImageMetadataInterface(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Metadata/include/otbSarImageMetadataInterfaceFactory.h b/Modules/Core/Metadata/include/otbSarImageMetadataInterfaceFactory.h
index b9cd10bc28..7344cf26d2 100644
--- a/Modules/Core/Metadata/include/otbSarImageMetadataInterfaceFactory.h
+++ b/Modules/Core/Metadata/include/otbSarImageMetadataInterfaceFactory.h
@@ -64,8 +64,8 @@ protected:
   ~SarImageMetadataInterfaceFactory() override;
 
 private:
-  SarImageMetadataInterfaceFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  SarImageMetadataInterfaceFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Metadata/include/otbSentinel1ImageMetadataInterface.h b/Modules/Core/Metadata/include/otbSentinel1ImageMetadataInterface.h
index c863639858..38d7ce40ce 100644
--- a/Modules/Core/Metadata/include/otbSentinel1ImageMetadataInterface.h
+++ b/Modules/Core/Metadata/include/otbSentinel1ImageMetadataInterface.h
@@ -104,8 +104,8 @@ protected:
 
 private:
 
-  Sentinel1ImageMetadataInterface(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  Sentinel1ImageMetadataInterface(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 /* Helper function to parse date and time into a std::vector<std::string>
  * using boost::split() expect date time in yyyy-mm-ddThh:mm:ss.ms
@@ -213,9 +213,9 @@ public:
 
 private:
 
-  Sentinel1CalibrationLookupData(const Self&); //purposely not implemented
+  Sentinel1CalibrationLookupData(const Self&) = delete;
 
-  void operator =(const Self&); //purposely not implemented
+  void operator =(const Self&) = delete;
 
   double firstLineTime;
   double lastLineTime;
diff --git a/Modules/Core/Metadata/include/otbSentinel1ImageMetadataInterfaceFactory.h b/Modules/Core/Metadata/include/otbSentinel1ImageMetadataInterfaceFactory.h
index fafe69dd8f..23ded0bbf0 100644
--- a/Modules/Core/Metadata/include/otbSentinel1ImageMetadataInterfaceFactory.h
+++ b/Modules/Core/Metadata/include/otbSentinel1ImageMetadataInterfaceFactory.h
@@ -62,8 +62,8 @@ protected:
   ~Sentinel1ImageMetadataInterfaceFactory() override;
 
 private:
-  Sentinel1ImageMetadataInterfaceFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  Sentinel1ImageMetadataInterfaceFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Metadata/include/otbSpot6ImageMetadataInterface.h b/Modules/Core/Metadata/include/otbSpot6ImageMetadataInterface.h
index a63b9fa362..a8d6820750 100644
--- a/Modules/Core/Metadata/include/otbSpot6ImageMetadataInterface.h
+++ b/Modules/Core/Metadata/include/otbSpot6ImageMetadataInterface.h
@@ -130,8 +130,8 @@ protected:
 
 private:
 
-  Spot6ImageMetadataInterface(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  Spot6ImageMetadataInterface(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Metadata/include/otbSpot6ImageMetadataInterfaceFactory.h b/Modules/Core/Metadata/include/otbSpot6ImageMetadataInterfaceFactory.h
index 83e9ee40ec..bd76c804ea 100644
--- a/Modules/Core/Metadata/include/otbSpot6ImageMetadataInterfaceFactory.h
+++ b/Modules/Core/Metadata/include/otbSpot6ImageMetadataInterfaceFactory.h
@@ -62,8 +62,8 @@ protected:
   ~Spot6ImageMetadataInterfaceFactory() override;
 
 private:
-  Spot6ImageMetadataInterfaceFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  Spot6ImageMetadataInterfaceFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Metadata/include/otbSpotImageMetadataInterface.h b/Modules/Core/Metadata/include/otbSpotImageMetadataInterface.h
index 3f855595ee..03e9114865 100644
--- a/Modules/Core/Metadata/include/otbSpotImageMetadataInterface.h
+++ b/Modules/Core/Metadata/include/otbSpotImageMetadataInterface.h
@@ -132,8 +132,8 @@ protected:
 
 private:
 
-  SpotImageMetadataInterface(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  SpotImageMetadataInterface(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Metadata/include/otbSpotImageMetadataInterfaceFactory.h b/Modules/Core/Metadata/include/otbSpotImageMetadataInterfaceFactory.h
index 8516b694b5..49a2d11f3a 100644
--- a/Modules/Core/Metadata/include/otbSpotImageMetadataInterfaceFactory.h
+++ b/Modules/Core/Metadata/include/otbSpotImageMetadataInterfaceFactory.h
@@ -62,8 +62,8 @@ protected:
   ~SpotImageMetadataInterfaceFactory() override;
 
 private:
-  SpotImageMetadataInterfaceFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  SpotImageMetadataInterfaceFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Metadata/include/otbTerraSarImageMetadataInterface.h b/Modules/Core/Metadata/include/otbTerraSarImageMetadataInterface.h
index 321623631f..b6181f61e2 100644
--- a/Modules/Core/Metadata/include/otbTerraSarImageMetadataInterface.h
+++ b/Modules/Core/Metadata/include/otbTerraSarImageMetadataInterface.h
@@ -188,8 +188,8 @@ protected:
   double GetNoiseReferencePoint(unsigned int noiseRecord) const;
 
 private:
-  TerraSarImageMetadataInterface(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  TerraSarImageMetadataInterface(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Metadata/include/otbTerraSarImageMetadataInterfaceFactory.h b/Modules/Core/Metadata/include/otbTerraSarImageMetadataInterfaceFactory.h
index 3d68e5b6de..fb1e5418b3 100644
--- a/Modules/Core/Metadata/include/otbTerraSarImageMetadataInterfaceFactory.h
+++ b/Modules/Core/Metadata/include/otbTerraSarImageMetadataInterfaceFactory.h
@@ -62,8 +62,8 @@ protected:
   ~TerraSarImageMetadataInterfaceFactory() override;
 
 private:
-  TerraSarImageMetadataInterfaceFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  TerraSarImageMetadataInterfaceFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Metadata/include/otbWorldView2ImageMetadataInterface.h b/Modules/Core/Metadata/include/otbWorldView2ImageMetadataInterface.h
index 3d21958848..1007e6df13 100644
--- a/Modules/Core/Metadata/include/otbWorldView2ImageMetadataInterface.h
+++ b/Modules/Core/Metadata/include/otbWorldView2ImageMetadataInterface.h
@@ -117,8 +117,8 @@ protected:
 
 private:
 
-  WorldView2ImageMetadataInterface(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  WorldView2ImageMetadataInterface(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Metadata/include/otbWorldView2ImageMetadataInterfaceFactory.h b/Modules/Core/Metadata/include/otbWorldView2ImageMetadataInterfaceFactory.h
index b48d21fa40..6af98a94bd 100644
--- a/Modules/Core/Metadata/include/otbWorldView2ImageMetadataInterfaceFactory.h
+++ b/Modules/Core/Metadata/include/otbWorldView2ImageMetadataInterfaceFactory.h
@@ -63,8 +63,8 @@ protected:
   ~WorldView2ImageMetadataInterfaceFactory() override;
 
 private:
-  WorldView2ImageMetadataInterfaceFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  WorldView2ImageMetadataInterfaceFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/ObjectList/include/otbImageList.h b/Modules/Core/ObjectList/include/otbImageList.h
index cc7d167bcb..f57bd48360 100644
--- a/Modules/Core/ObjectList/include/otbImageList.h
+++ b/Modules/Core/ObjectList/include/otbImageList.h
@@ -82,8 +82,8 @@ protected:
   }
 
 private:
-  ImageList(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImageList(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 } // End namespace otb
 
diff --git a/Modules/Core/ObjectList/include/otbImageListSource.h b/Modules/Core/ObjectList/include/otbImageListSource.h
index 1ebbd143ef..65012ab388 100644
--- a/Modules/Core/ObjectList/include/otbImageListSource.h
+++ b/Modules/Core/ObjectList/include/otbImageListSource.h
@@ -70,8 +70,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ImageListSource(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImageListSource(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 } // End namespace otb
 
diff --git a/Modules/Core/ObjectList/include/otbImageListToImageFilter.h b/Modules/Core/ObjectList/include/otbImageListToImageFilter.h
index 67c27465b6..56c067b409 100644
--- a/Modules/Core/ObjectList/include/otbImageListToImageFilter.h
+++ b/Modules/Core/ObjectList/include/otbImageListToImageFilter.h
@@ -80,8 +80,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ImageListToImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImageListToImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 } // End namespace otb
 #ifndef OTB_MANUAL_INSTANTIATION
diff --git a/Modules/Core/ObjectList/include/otbImageListToImageListApplyFilter.h b/Modules/Core/ObjectList/include/otbImageListToImageListApplyFilter.h
index 9865945dc4..814df0753f 100644
--- a/Modules/Core/ObjectList/include/otbImageListToImageListApplyFilter.h
+++ b/Modules/Core/ObjectList/include/otbImageListToImageListApplyFilter.h
@@ -97,8 +97,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ImageListToImageListApplyFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImageListToImageListApplyFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** The processing filter */
   FilterPointerType m_Filter;
diff --git a/Modules/Core/ObjectList/include/otbImageListToImageListFilter.h b/Modules/Core/ObjectList/include/otbImageListToImageListFilter.h
index 1a48386220..1fff1873d2 100644
--- a/Modules/Core/ObjectList/include/otbImageListToImageListFilter.h
+++ b/Modules/Core/ObjectList/include/otbImageListToImageListFilter.h
@@ -78,8 +78,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ImageListToImageListFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImageListToImageListFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 } // End namespace otb
 #ifndef OTB_MANUAL_INSTANTIATION
diff --git a/Modules/Core/ObjectList/include/otbImageListToSingleImageFilter.h b/Modules/Core/ObjectList/include/otbImageListToSingleImageFilter.h
index d290e9e849..53a5049836 100644
--- a/Modules/Core/ObjectList/include/otbImageListToSingleImageFilter.h
+++ b/Modules/Core/ObjectList/include/otbImageListToSingleImageFilter.h
@@ -83,8 +83,8 @@ protected:
 
 
 private:
-  ImageListToSingleImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImageListToSingleImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   unsigned int m_ExtractedImagePosition;
 
diff --git a/Modules/Core/ObjectList/include/otbImageListToVectorImageFilter.h b/Modules/Core/ObjectList/include/otbImageListToVectorImageFilter.h
index ac84491ee5..3841c8b9f7 100644
--- a/Modules/Core/ObjectList/include/otbImageListToVectorImageFilter.h
+++ b/Modules/Core/ObjectList/include/otbImageListToVectorImageFilter.h
@@ -89,8 +89,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ImageListToVectorImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImageListToVectorImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 } // End namespace otb
 #ifndef OTB_MANUAL_INSTANTIATION
diff --git a/Modules/Core/ObjectList/include/otbImageToImageListFilter.h b/Modules/Core/ObjectList/include/otbImageToImageListFilter.h
index 1978e6966f..92370fa43d 100644
--- a/Modules/Core/ObjectList/include/otbImageToImageListFilter.h
+++ b/Modules/Core/ObjectList/include/otbImageToImageListFilter.h
@@ -76,8 +76,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ImageToImageListFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImageToImageListFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 } // End namespace otb
 #ifndef OTB_MANUAL_INSTANTIATION
diff --git a/Modules/Core/ObjectList/include/otbObjectList.h b/Modules/Core/ObjectList/include/otbObjectList.h
index 80464782d4..de9814f934 100644
--- a/Modules/Core/ObjectList/include/otbObjectList.h
+++ b/Modules/Core/ObjectList/include/otbObjectList.h
@@ -611,8 +611,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ObjectList(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ObjectList(const Self &) = delete;
+  void operator =(const Self&) = delete;
   /** The internal std::vector object container */
   InternalContainerType m_InternalContainer;
 };
diff --git a/Modules/Core/ObjectList/include/otbObjectListSource.h b/Modules/Core/ObjectList/include/otbObjectListSource.h
index 586bd3535a..3dbefeecdf 100644
--- a/Modules/Core/ObjectList/include/otbObjectListSource.h
+++ b/Modules/Core/ObjectList/include/otbObjectListSource.h
@@ -193,8 +193,8 @@ protected:
   void GenerateData(void) override;
 
 private:
-  ObjectListSource(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ObjectListSource(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/ObjectList/include/otbObjectListToObjectListFilter.h b/Modules/Core/ObjectList/include/otbObjectListToObjectListFilter.h
index 1b8bfec0ec..b906edffbd 100644
--- a/Modules/Core/ObjectList/include/otbObjectListToObjectListFilter.h
+++ b/Modules/Core/ObjectList/include/otbObjectListToObjectListFilter.h
@@ -114,8 +114,8 @@ protected:
   /** End Multi-threading implementation */
 
 private:
-  ObjectListToObjectListFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ObjectListToObjectListFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/ObjectList/include/otbUnaryFunctorObjectListBooleanFilter.h b/Modules/Core/ObjectList/include/otbUnaryFunctorObjectListBooleanFilter.h
index 8f6fa80b67..ec873d99d6 100644
--- a/Modules/Core/ObjectList/include/otbUnaryFunctorObjectListBooleanFilter.h
+++ b/Modules/Core/ObjectList/include/otbUnaryFunctorObjectListBooleanFilter.h
@@ -112,8 +112,8 @@ protected:
   /** End Multi-threading implementation */
 
 private:
-  UnaryFunctorObjectListBooleanFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  UnaryFunctorObjectListBooleanFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   FunctorType m_Functor;
 };
diff --git a/Modules/Core/ObjectList/include/otbUnaryFunctorObjectListFilter.h b/Modules/Core/ObjectList/include/otbUnaryFunctorObjectListFilter.h
index bf101d6181..8d84273489 100644
--- a/Modules/Core/ObjectList/include/otbUnaryFunctorObjectListFilter.h
+++ b/Modules/Core/ObjectList/include/otbUnaryFunctorObjectListFilter.h
@@ -107,8 +107,8 @@ protected:
   /** End Multi-threading implementation */
 
 private:
-  UnaryFunctorObjectListFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  UnaryFunctorObjectListFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   FunctorType m_Functor;
 
diff --git a/Modules/Core/ObjectList/include/otbVectorImageToImageListFilter.h b/Modules/Core/ObjectList/include/otbVectorImageToImageListFilter.h
index dc864f192c..150b97af55 100644
--- a/Modules/Core/ObjectList/include/otbVectorImageToImageListFilter.h
+++ b/Modules/Core/ObjectList/include/otbVectorImageToImageListFilter.h
@@ -85,8 +85,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  VectorImageToImageListFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VectorImageToImageListFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 } // End namespace otb
 #ifndef OTB_MANUAL_INSTANTIATION
diff --git a/Modules/Core/PointSet/include/otbImageToPointSetFilter.h b/Modules/Core/PointSet/include/otbImageToPointSetFilter.h
index c14ed78b77..98b5fff521 100644
--- a/Modules/Core/PointSet/include/otbImageToPointSetFilter.h
+++ b/Modules/Core/PointSet/include/otbImageToPointSetFilter.h
@@ -124,8 +124,8 @@ protected:
   StreamingManagerPointer m_StreamingManager;
 
 private:
-  ImageToPointSetFilter(const ImageToPointSetFilter &); //purposely not implemented
-  void operator =(const ImageToPointSetFilter&); //purposely not implemented
+  ImageToPointSetFilter(const ImageToPointSetFilter &) = delete;
+  void operator =(const ImageToPointSetFilter&) = delete;
 
 };
 
diff --git a/Modules/Core/PointSet/include/otbPointSetAndValuesFunction.h b/Modules/Core/PointSet/include/otbPointSetAndValuesFunction.h
index 9bd92e9667..54f4e0d8e8 100644
--- a/Modules/Core/PointSet/include/otbPointSetAndValuesFunction.h
+++ b/Modules/Core/PointSet/include/otbPointSetAndValuesFunction.h
@@ -107,8 +107,8 @@ protected:
   virtual void PrintSelf(std::ostream& os, itk::Indent indent) const;
 
 private:
-  PointSetAndValuesFunction(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PointSetAndValuesFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** PointSet */
   PointSetConstPointerType m_PointSet;
diff --git a/Modules/Core/PointSet/include/otbPointSetExtractROI.h b/Modules/Core/PointSet/include/otbPointSetExtractROI.h
index 158bfae6f7..4065ccae0d 100644
--- a/Modules/Core/PointSet/include/otbPointSetExtractROI.h
+++ b/Modules/Core/PointSet/include/otbPointSetExtractROI.h
@@ -85,8 +85,8 @@ protected:
   void GenerateData(void) override;
 
 private:
-  PointSetExtractROI(const PointSetExtractROI &); //purposely not implemented
-  void operator =(const PointSetExtractROI&); //purposely not implemented
+  PointSetExtractROI(const PointSetExtractROI &) = delete;
+  void operator =(const PointSetExtractROI&) = delete;
 
   /** X/Y coordinates of the first point of the region to extract. */
   unsigned long m_StartX;
diff --git a/Modules/Core/PointSet/include/otbPointSetFunction.h b/Modules/Core/PointSet/include/otbPointSetFunction.h
index 785753bac2..3e27810889 100644
--- a/Modules/Core/PointSet/include/otbPointSetFunction.h
+++ b/Modules/Core/PointSet/include/otbPointSetFunction.h
@@ -76,8 +76,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  PointSetFunction(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  PointSetFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   PointSetPointerType m_PointSet;
 
diff --git a/Modules/Core/PointSet/include/otbPointSetSource.h b/Modules/Core/PointSet/include/otbPointSetSource.h
index 601c8b65db..cc74ddd871 100644
--- a/Modules/Core/PointSet/include/otbPointSetSource.h
+++ b/Modules/Core/PointSet/include/otbPointSetSource.h
@@ -139,8 +139,8 @@ protected:
   void GenerateInputRequestedRegion() override;
 
 private:
-  PointSetSource(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PointSetSource(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Used by streaming: The requested region of the output being processed
    * by the execute method. Set in the GenerateInputRequestedRegion method. */
diff --git a/Modules/Core/PointSet/include/otbPointSetToPointSetFilter.h b/Modules/Core/PointSet/include/otbPointSetToPointSetFilter.h
index bbe2091f4b..52923cbd5d 100644
--- a/Modules/Core/PointSet/include/otbPointSetToPointSetFilter.h
+++ b/Modules/Core/PointSet/include/otbPointSetToPointSetFilter.h
@@ -77,8 +77,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  PointSetToPointSetFilter(const PointSetToPointSetFilter &); //purposely not implemented
-  void operator =(const PointSetToPointSetFilter&); //purposely not implemented
+  PointSetToPointSetFilter(const PointSetToPointSetFilter &) = delete;
+  void operator =(const PointSetToPointSetFilter&) = delete;
 
 };
 
diff --git a/Modules/Core/PointSet/include/otbRandomPointSetSource.h b/Modules/Core/PointSet/include/otbRandomPointSetSource.h
index e84e807a0a..cfc09283ae 100644
--- a/Modules/Core/PointSet/include/otbRandomPointSetSource.h
+++ b/Modules/Core/PointSet/include/otbRandomPointSetSource.h
@@ -92,8 +92,8 @@ protected:
   void GenerateData(void) override;
 
 private:
-  RandomPointSetSource(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  RandomPointSetSource(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   unsigned int m_NumberOfPoints;
 
diff --git a/Modules/Core/PointSet/include/otbThresholdImageToPointSetFilter.h b/Modules/Core/PointSet/include/otbThresholdImageToPointSetFilter.h
index b3a7fca707..3f158f90f3 100644
--- a/Modules/Core/PointSet/include/otbThresholdImageToPointSetFilter.h
+++ b/Modules/Core/PointSet/include/otbThresholdImageToPointSetFilter.h
@@ -91,8 +91,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ThresholdImageToPointSetFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ThresholdImageToPointSetFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   InputPixelType m_LowerThreshold;
   InputPixelType m_UpperThreshold;
diff --git a/Modules/Core/PointSet/include/otbTransformPointSetFilter.h b/Modules/Core/PointSet/include/otbTransformPointSetFilter.h
index 06867c5a98..9b1dedfa6a 100644
--- a/Modules/Core/PointSet/include/otbTransformPointSetFilter.h
+++ b/Modules/Core/PointSet/include/otbTransformPointSetFilter.h
@@ -85,8 +85,8 @@ protected:
   typename TransformType::Pointer m_Transform;
 
 private:
-  TransformPointSetFilter(const TransformPointSetFilter &); //purposely not implemented
-  void operator =(const TransformPointSetFilter&); //purposely not implemented
+  TransformPointSetFilter(const TransformPointSetFilter &) = delete;
+  void operator =(const TransformPointSetFilter&) = delete;
 
 };
 
diff --git a/Modules/Core/SpatialObjects/include/otbDrawLineSpatialObjectFilter.h b/Modules/Core/SpatialObjects/include/otbDrawLineSpatialObjectFilter.h
index fd49d3ec5e..b113b03677 100644
--- a/Modules/Core/SpatialObjects/include/otbDrawLineSpatialObjectFilter.h
+++ b/Modules/Core/SpatialObjects/include/otbDrawLineSpatialObjectFilter.h
@@ -107,8 +107,8 @@ protected:
   void GenerateData() override;
 
 private:
-  DrawLineSpatialObjectFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  DrawLineSpatialObjectFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   OutputPixelType m_Value;
 
diff --git a/Modules/Core/SpatialObjects/include/otbDrawLineSpatialObjectListFilter.h b/Modules/Core/SpatialObjects/include/otbDrawLineSpatialObjectListFilter.h
index 72a6854b6e..9232ed96f6 100644
--- a/Modules/Core/SpatialObjects/include/otbDrawLineSpatialObjectListFilter.h
+++ b/Modules/Core/SpatialObjects/include/otbDrawLineSpatialObjectListFilter.h
@@ -121,8 +121,8 @@ protected:
                                           const OutputImageRegionType *outputRegionForThread) const;
 
 private:
-  DrawLineSpatialObjectListFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  DrawLineSpatialObjectListFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   OutputPixelType m_Value;
   int             m_Length;
diff --git a/Modules/Core/SpatialObjects/include/otbImageToLineSpatialObjectListFilter.h b/Modules/Core/SpatialObjects/include/otbImageToLineSpatialObjectListFilter.h
index f4af3ce59b..728546e2fd 100644
--- a/Modules/Core/SpatialObjects/include/otbImageToLineSpatialObjectListFilter.h
+++ b/Modules/Core/SpatialObjects/include/otbImageToLineSpatialObjectListFilter.h
@@ -89,8 +89,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ImageToLineSpatialObjectListFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImageToLineSpatialObjectListFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/SpatialObjects/include/otbLineSpatialObject.h b/Modules/Core/SpatialObjects/include/otbLineSpatialObject.h
index 536f2b305b..dfbc49ca23 100644
--- a/Modules/Core/SpatialObjects/include/otbLineSpatialObject.h
+++ b/Modules/Core/SpatialObjects/include/otbLineSpatialObject.h
@@ -124,8 +124,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  LineSpatialObject(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  LineSpatialObject(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Point list */
   PointListType m_Points;
diff --git a/Modules/Core/SpatialObjects/include/otbLineSpatialObjectList.h b/Modules/Core/SpatialObjects/include/otbLineSpatialObjectList.h
index c1ab636cb3..132e5ae5b1 100644
--- a/Modules/Core/SpatialObjects/include/otbLineSpatialObjectList.h
+++ b/Modules/Core/SpatialObjects/include/otbLineSpatialObjectList.h
@@ -61,8 +61,8 @@ protected:
   ~LineSpatialObjectList() override {}
 
 private:
-  LineSpatialObjectList(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  LineSpatialObjectList(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/SpatialObjects/include/otbLineSpatialObjectListToPointSetFilter.h b/Modules/Core/SpatialObjects/include/otbLineSpatialObjectListToPointSetFilter.h
index 9da17bfef6..d3174d7ed9 100644
--- a/Modules/Core/SpatialObjects/include/otbLineSpatialObjectListToPointSetFilter.h
+++ b/Modules/Core/SpatialObjects/include/otbLineSpatialObjectListToPointSetFilter.h
@@ -78,8 +78,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  LineSpatialObjectListToPointSetFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  LineSpatialObjectListToPointSetFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/SpatialObjects/include/otbSpatialObjectSource.h b/Modules/Core/SpatialObjects/include/otbSpatialObjectSource.h
index fadfaff42a..76e0d0592f 100644
--- a/Modules/Core/SpatialObjects/include/otbSpatialObjectSource.h
+++ b/Modules/Core/SpatialObjects/include/otbSpatialObjectSource.h
@@ -72,8 +72,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  SpatialObjectSource(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  SpatialObjectSource(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 } // end namespace otb
diff --git a/Modules/Core/SpatialObjects/include/otbSpatialObjectToImageDrawingFilter.h b/Modules/Core/SpatialObjects/include/otbSpatialObjectToImageDrawingFilter.h
index 26326dc30c..ba728d927f 100644
--- a/Modules/Core/SpatialObjects/include/otbSpatialObjectToImageDrawingFilter.h
+++ b/Modules/Core/SpatialObjects/include/otbSpatialObjectToImageDrawingFilter.h
@@ -156,8 +156,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  SpatialObjectToImageDrawingFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  SpatialObjectToImageDrawingFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // end namespace otb
diff --git a/Modules/Core/Streaming/include/otbPersistentFilterStreamingDecorator.h b/Modules/Core/Streaming/include/otbPersistentFilterStreamingDecorator.h
index 692848d833..f319c00c46 100644
--- a/Modules/Core/Streaming/include/otbPersistentFilterStreamingDecorator.h
+++ b/Modules/Core/Streaming/include/otbPersistentFilterStreamingDecorator.h
@@ -92,8 +92,8 @@ protected:
   FilterPointerType m_Filter;
 
 private:
-  PersistentFilterStreamingDecorator(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PersistentFilterStreamingDecorator(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 } // End namespace otb
diff --git a/Modules/Core/Streaming/include/otbPersistentImageFilter.h b/Modules/Core/Streaming/include/otbPersistentImageFilter.h
index f40159b95e..f802d858a4 100644
--- a/Modules/Core/Streaming/include/otbPersistentImageFilter.h
+++ b/Modules/Core/Streaming/include/otbPersistentImageFilter.h
@@ -81,8 +81,8 @@ protected:
   }
 
 private:
-  PersistentImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PersistentImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 } // End namespace otb
 
diff --git a/Modules/Core/Streaming/include/otbPipelineMemoryPrintCalculator.h b/Modules/Core/Streaming/include/otbPipelineMemoryPrintCalculator.h
index bda15b231d..03f39aa21a 100644
--- a/Modules/Core/Streaming/include/otbPipelineMemoryPrintCalculator.h
+++ b/Modules/Core/Streaming/include/otbPipelineMemoryPrintCalculator.h
@@ -137,8 +137,8 @@ protected:
   MemoryPrintType EvaluateProcessObjectPrintRecursive(ProcessObjectType * process);
 
 private:
-  PipelineMemoryPrintCalculator(const Self &); //purposely not implemented
-  void operator =(const Self&);                //purposely not implemented
+  PipelineMemoryPrintCalculator(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** The total memory print of the pipeline */
   MemoryPrintType       m_MemoryPrint;
diff --git a/Modules/Core/Streaming/include/otbStreamingImageVirtualWriter.h b/Modules/Core/Streaming/include/otbStreamingImageVirtualWriter.h
index 29fafc6bf5..d01a475cf1 100644
--- a/Modules/Core/Streaming/include/otbStreamingImageVirtualWriter.h
+++ b/Modules/Core/Streaming/include/otbStreamingImageVirtualWriter.h
@@ -160,8 +160,8 @@ protected:
   void GenerateInputRequestedRegion(void) override;
 
 private:
-  StreamingImageVirtualWriter(const StreamingImageVirtualWriter &); //purposely not implemented
-  void operator =(const StreamingImageVirtualWriter&); //purposely not implemented
+  StreamingImageVirtualWriter(const StreamingImageVirtualWriter &) = delete;
+  void operator =(const StreamingImageVirtualWriter&) = delete;
 
   void ObserveSourceFilterProgress(itk::Object* object, const itk::EventObject & event )
   {
diff --git a/Modules/Core/Streaming/include/otbStreamingManager.h b/Modules/Core/Streaming/include/otbStreamingManager.h
index 0bffd7e957..860fa455ec 100644
--- a/Modules/Core/Streaming/include/otbStreamingManager.h
+++ b/Modules/Core/Streaming/include/otbStreamingManager.h
@@ -113,8 +113,8 @@ protected:
   AbstractSplitterPointerType m_Splitter;
 
 private:
-  StreamingManager(const StreamingManager &); //purposely not implemented
-  void operator =(const StreamingManager&);   //purposely not implemented
+  StreamingManager(const StreamingManager &) = delete;
+  void operator =(const StreamingManager&) = delete;
 
   /** Compute the available RAM in Bytes from an input value in MByte.
    *  If the input value is 0, it uses the m_DefaultRAM value.
diff --git a/Modules/Core/Transform/include/otbCompositeTransform.h b/Modules/Core/Transform/include/otbCompositeTransform.h
index f638c97233..a152662542 100644
--- a/Modules/Core/Transform/include/otbCompositeTransform.h
+++ b/Modules/Core/Transform/include/otbCompositeTransform.h
@@ -137,8 +137,8 @@ protected:
   SecondTransformPointerType m_SecondTransform;
 
 private:
-  CompositeTransform(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  CompositeTransform(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Transform/include/otbForwardSensorModel.h b/Modules/Core/Transform/include/otbForwardSensorModel.h
index c158426674..29d22c0551 100644
--- a/Modules/Core/Transform/include/otbForwardSensorModel.h
+++ b/Modules/Core/Transform/include/otbForwardSensorModel.h
@@ -85,8 +85,8 @@ protected:
 
 private:
 
-  ForwardSensorModel(const Self &); //purposely not implemented
-  void operator =(const Self&);     //purposely not implemented
+  ForwardSensorModel(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Transform/include/otbGenericMapProjection.h b/Modules/Core/Transform/include/otbGenericMapProjection.h
index 4e6d5f15ff..a41106563a 100644
--- a/Modules/Core/Transform/include/otbGenericMapProjection.h
+++ b/Modules/Core/Transform/include/otbGenericMapProjection.h
@@ -118,8 +118,8 @@ protected:
   MapProjectionAdapter::Pointer m_MapProjection;
 
 private:
-  GenericMapProjection(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  GenericMapProjection(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Transform/include/otbGenericRSTransform.h b/Modules/Core/Transform/include/otbGenericRSTransform.h
index 35f0bc7cde..433d99955d 100644
--- a/Modules/Core/Transform/include/otbGenericRSTransform.h
+++ b/Modules/Core/Transform/include/otbGenericRSTransform.h
@@ -195,8 +195,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  GenericRSTransform(const Self &);    //purposely not implemented
-  void operator =(const Self&);    //purposely not implemented
+  GenericRSTransform(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   ImageKeywordlist m_InputKeywordList;
   ImageKeywordlist m_OutputKeywordList;
diff --git a/Modules/Core/Transform/include/otbGeocentricTransform.h b/Modules/Core/Transform/include/otbGeocentricTransform.h
index 9d53f04f14..fd9ed8975e 100644
--- a/Modules/Core/Transform/include/otbGeocentricTransform.h
+++ b/Modules/Core/Transform/include/otbGeocentricTransform.h
@@ -74,8 +74,8 @@ protected:
   EllipsoidAdapter::Pointer m_Ellipsoid;
 
 private:
-  GeocentricTransform(const Self &);        //purposely not implemented
-  void operator =(const Self&);        //purposely not implemented
+  GeocentricTransform(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Transform/include/otbImageToGenericRSOutputParameters.h b/Modules/Core/Transform/include/otbImageToGenericRSOutputParameters.h
index 79850a27d9..6a36ced78b 100644
--- a/Modules/Core/Transform/include/otbImageToGenericRSOutputParameters.h
+++ b/Modules/Core/Transform/include/otbImageToGenericRSOutputParameters.h
@@ -166,8 +166,8 @@ protected:
   ~ImageToGenericRSOutputParameters() override {}
 
 private:
-  ImageToGenericRSOutputParameters(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  ImageToGenericRSOutputParameters(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   void UpdateTransform();
   void EstimateOutputImageExtent();
diff --git a/Modules/Core/Transform/include/otbInverseLogPolarTransform.h b/Modules/Core/Transform/include/otbInverseLogPolarTransform.h
index 14d60db886..01ab403dc3 100644
--- a/Modules/Core/Transform/include/otbInverseLogPolarTransform.h
+++ b/Modules/Core/Transform/include/otbInverseLogPolarTransform.h
@@ -129,8 +129,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  InverseLogPolarTransform(const Self &); // purposely not implemented
-  void operator =(const Self&); // purposely not implemented
+  InverseLogPolarTransform(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   InputPointType m_Center;
   ScaleType      m_Scale;
diff --git a/Modules/Core/Transform/include/otbInverseSensorModel.h b/Modules/Core/Transform/include/otbInverseSensorModel.h
index acb24a2f5e..c76405f7eb 100644
--- a/Modules/Core/Transform/include/otbInverseSensorModel.h
+++ b/Modules/Core/Transform/include/otbInverseSensorModel.h
@@ -87,8 +87,8 @@ protected:
 
 private:
 
-  InverseSensorModel(const Self &); //purposely not implemented
-  void operator =(const Self&);     //purposely not implemented
+  InverseSensorModel(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Transform/include/otbLogPolarTransform.h b/Modules/Core/Transform/include/otbLogPolarTransform.h
index 110595ffa9..c9894eafa5 100644
--- a/Modules/Core/Transform/include/otbLogPolarTransform.h
+++ b/Modules/Core/Transform/include/otbLogPolarTransform.h
@@ -133,8 +133,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  LogPolarTransform(const Self &); // purposely not implemented
-  void operator =(const Self&); // purposely not implemented
+  LogPolarTransform(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   InputPointType m_Center;
   ScaleType      m_Scale;
diff --git a/Modules/Core/Transform/include/otbSensorModelBase.h b/Modules/Core/Transform/include/otbSensorModelBase.h
index f2ae212e5d..e3c4f313a5 100644
--- a/Modules/Core/Transform/include/otbSensorModelBase.h
+++ b/Modules/Core/Transform/include/otbSensorModelBase.h
@@ -103,8 +103,8 @@ protected:
   SensorModelAdapter::Pointer m_Model;
 
 private:
-  SensorModelBase(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  SensorModelBase(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/Transform/include/otbStreamingWarpImageFilter.h b/Modules/Core/Transform/include/otbStreamingWarpImageFilter.h
index 41b7058b52..dea4315b01 100644
--- a/Modules/Core/Transform/include/otbStreamingWarpImageFilter.h
+++ b/Modules/Core/Transform/include/otbStreamingWarpImageFilter.h
@@ -114,8 +114,8 @@ protected:
                             itk::ThreadIdType threadId ) override;
 
 private:
-  StreamingWarpImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  StreamingWarpImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   //Because of itk positive spacing we need this member to be compliant with otb
   //signed spacing
diff --git a/Modules/Core/Transform/include/otbTransform.h b/Modules/Core/Transform/include/otbTransform.h
index 17dd9e92e0..e015b8e23c 100644
--- a/Modules/Core/Transform/include/otbTransform.h
+++ b/Modules/Core/Transform/include/otbTransform.h
@@ -226,8 +226,8 @@ protected:
 
   mutable JacobianType m_Jacobian;
 private:
-  Transform(const Self &);      //purposely not implemented
-  void operator=(const Self &); //purposely not implemented
+  Transform(const Self &) = delete;
+  void operator=(const Self &) = delete;
 };
 } // end namespace otb
 
diff --git a/Modules/Core/VectorDataBase/include/otbDataNode.h b/Modules/Core/VectorDataBase/include/otbDataNode.h
index f3752c8c88..2ee30191be 100644
--- a/Modules/Core/VectorDataBase/include/otbDataNode.h
+++ b/Modules/Core/VectorDataBase/include/otbDataNode.h
@@ -297,8 +297,8 @@ protected:
   OGRGeometry* ConvertDataNodeToOGRGeometry(const DataNode* dataNode);
 
 private:
-  DataNode(const Self&); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  DataNode(const Self&) = delete;
+  void operator =(const Self&) = delete;
 
   /** typedef of the data associated with the node */
   typedef struct
diff --git a/Modules/Core/VectorDataBase/include/otbDataNodeFunctionBase.h b/Modules/Core/VectorDataBase/include/otbDataNodeFunctionBase.h
index 33016b73da..2636c5cf50 100644
--- a/Modules/Core/VectorDataBase/include/otbDataNodeFunctionBase.h
+++ b/Modules/Core/VectorDataBase/include/otbDataNodeFunctionBase.h
@@ -73,8 +73,8 @@ protected:
   ~DataNodeFunctionBase() override{};
 
 private:
-  DataNodeFunctionBase(const Self& ); //purposely not implemented
-  void operator=(const Self& ); //purposely not implemented
+  DataNodeFunctionBase(const Self& ) = delete;
+  void operator=(const Self& ) = delete;
 };
 
 } // end namespace otb
diff --git a/Modules/Core/VectorDataBase/include/otbDataNodeImageFunction.h b/Modules/Core/VectorDataBase/include/otbDataNodeImageFunction.h
index 5f389b35b6..0dcf7dff7a 100644
--- a/Modules/Core/VectorDataBase/include/otbDataNodeImageFunction.h
+++ b/Modules/Core/VectorDataBase/include/otbDataNodeImageFunction.h
@@ -199,8 +199,8 @@ protected:
   ContinuousIndexType     m_EndContinuousIndex;
 
 private:
-  DataNodeImageFunction(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  DataNodeImageFunction(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/VectorDataBase/include/otbDataNodeVectorDataFunction.h b/Modules/Core/VectorDataBase/include/otbDataNodeVectorDataFunction.h
index 798dd99dbe..0be2c90bcd 100644
--- a/Modules/Core/VectorDataBase/include/otbDataNodeVectorDataFunction.h
+++ b/Modules/Core/VectorDataBase/include/otbDataNodeVectorDataFunction.h
@@ -99,8 +99,8 @@ protected:
   VectorDataConstPointerType  m_VectorData;
 
 private:
-  DataNodeVectorDataFunction(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  DataNodeVectorDataFunction(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/VectorDataBase/include/otbGISConnectionImplementation.h b/Modules/Core/VectorDataBase/include/otbGISConnectionImplementation.h
index 0a0039b065..0b1fc07613 100644
--- a/Modules/Core/VectorDataBase/include/otbGISConnectionImplementation.h
+++ b/Modules/Core/VectorDataBase/include/otbGISConnectionImplementation.h
@@ -81,8 +81,8 @@ protected:
   virtual ~GISConnectionImplementation(){};
 
 private:
-  GISConnectionImplementation(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  GISConnectionImplementation(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   std::string m_Host;
   std::string m_DBName;
diff --git a/Modules/Core/VectorDataBase/include/otbPolyLineParametricPathWithValue.h b/Modules/Core/VectorDataBase/include/otbPolyLineParametricPathWithValue.h
index 1a54429a79..c7839f8b6d 100644
--- a/Modules/Core/VectorDataBase/include/otbPolyLineParametricPathWithValue.h
+++ b/Modules/Core/VectorDataBase/include/otbPolyLineParametricPathWithValue.h
@@ -126,8 +126,8 @@ protected:
   void Modified() const override;
 
 private:
-  PolyLineParametricPathWithValue(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PolyLineParametricPathWithValue(const Self &) = delete;
+  void operator =(const Self&) = delete;
   std::string        m_Key;
   mutable double     m_Length;
   mutable bool       m_LengthIsValid;
diff --git a/Modules/Core/VectorDataBase/include/otbPolygon.h b/Modules/Core/VectorDataBase/include/otbPolygon.h
index 1d7cd20fae..f6db4f70f9 100644
--- a/Modules/Core/VectorDataBase/include/otbPolygon.h
+++ b/Modules/Core/VectorDataBase/include/otbPolygon.h
@@ -149,8 +149,8 @@ protected:
   void Modified() const override;
 
 private:
-  Polygon(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  Polygon(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   double         m_Epsilon;
   mutable double m_Area;
diff --git a/Modules/Core/VectorDataBase/include/otbVectorData.h b/Modules/Core/VectorDataBase/include/otbVectorData.h
index 75c1f0bee4..b4a1757c00 100644
--- a/Modules/Core/VectorDataBase/include/otbVectorData.h
+++ b/Modules/Core/VectorDataBase/include/otbVectorData.h
@@ -140,8 +140,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  VectorData(const Self&); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VectorData(const Self&) = delete;
+  void operator =(const Self&) = delete;
 
   /** Data tree */
   DataTreePointerType m_DataTree;
diff --git a/Modules/Core/VectorDataBase/include/otbVectorDataIOBase.h b/Modules/Core/VectorDataBase/include/otbVectorDataIOBase.h
index fac29ae71b..0b8aef8b80 100644
--- a/Modules/Core/VectorDataBase/include/otbVectorDataIOBase.h
+++ b/Modules/Core/VectorDataBase/include/otbVectorDataIOBase.h
@@ -170,8 +170,8 @@ protected:
   virtual void Reset(const bool freeDynamic = true);
 
 private:
-  VectorDataIOBase(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VectorDataIOBase(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Core/VectorDataBase/include/otbVectorDataProperties.h b/Modules/Core/VectorDataBase/include/otbVectorDataProperties.h
index 59f22cca0e..d4828df892 100644
--- a/Modules/Core/VectorDataBase/include/otbVectorDataProperties.h
+++ b/Modules/Core/VectorDataBase/include/otbVectorDataProperties.h
@@ -93,8 +93,8 @@ protected:
   void ProcessNode(InternalTreeNodeType * source);
   bool IsBoundingRegionNull();
 private:
-  VectorDataProperties(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  VectorDataProperties(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   //Pointer to the VectorData
   VectorDataType * m_VectorDataObject;
diff --git a/Modules/Core/VectorDataBase/include/otbVectorDataSource.h b/Modules/Core/VectorDataBase/include/otbVectorDataSource.h
index 4031a0b466..7572c713c1 100644
--- a/Modules/Core/VectorDataBase/include/otbVectorDataSource.h
+++ b/Modules/Core/VectorDataBase/include/otbVectorDataSource.h
@@ -91,8 +91,8 @@ protected:
   virtual void  AllocateOutputs();
 
 private:
-  VectorDataSource(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VectorDataSource(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Detection/CloudDetection/include/otbCloudDetectionFilter.h b/Modules/Detection/CloudDetection/include/otbCloudDetectionFilter.h
index 024c296191..f49a55fb55 100644
--- a/Modules/Detection/CloudDetection/include/otbCloudDetectionFilter.h
+++ b/Modules/Detection/CloudDetection/include/otbCloudDetectionFilter.h
@@ -78,8 +78,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  CloudDetectionFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  CloudDetectionFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Detection/CloudDetection/include/otbCloudEstimatorFilter.h b/Modules/Detection/CloudDetection/include/otbCloudEstimatorFilter.h
index fc795bbf1f..914137fd85 100644
--- a/Modules/Detection/CloudDetection/include/otbCloudEstimatorFilter.h
+++ b/Modules/Detection/CloudDetection/include/otbCloudEstimatorFilter.h
@@ -80,8 +80,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  CloudEstimatorFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  CloudEstimatorFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Detection/ObjectDetection/include/otbDescriptorsListSampleGenerator.h b/Modules/Detection/ObjectDetection/include/otbDescriptorsListSampleGenerator.h
index 3ab76e6b45..274e4f76d1 100644
--- a/Modules/Detection/ObjectDetection/include/otbDescriptorsListSampleGenerator.h
+++ b/Modules/Detection/ObjectDetection/include/otbDescriptorsListSampleGenerator.h
@@ -178,8 +178,8 @@ protected:
                              itk::ThreadIdType threadId) override;
 
 private:
-  PersistentDescriptorsListSampleGenerator(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PersistentDescriptorsListSampleGenerator(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   bool IsInsideWithNeighborhoodRadius(const RegionType& region, const ContinuousIndexType &index) const
     {
@@ -366,8 +366,8 @@ public:
     ~DescriptorsListSampleGenerator() override;
 
   private:
-    DescriptorsListSampleGenerator(const Self &); //purposely not implemented
-    void operator =(const Self&); //purposely not implemented
+    DescriptorsListSampleGenerator(const Self &) = delete;
+    void operator =(const Self&) = delete;
 };
 
 } // end namespace otb
diff --git a/Modules/Detection/ObjectDetection/include/otbFlusserMomentsIFFactory.h b/Modules/Detection/ObjectDetection/include/otbFlusserMomentsIFFactory.h
index 46ff16f5af..95653d5425 100644
--- a/Modules/Detection/ObjectDetection/include/otbFlusserMomentsIFFactory.h
+++ b/Modules/Detection/ObjectDetection/include/otbFlusserMomentsIFFactory.h
@@ -86,8 +86,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  FlusserMomentsIFFactory(const Self& ); //purposely not implemented
-  void operator=(const Self& ); //purposely not implemented
+  FlusserMomentsIFFactory(const Self& ) = delete;
+  void operator=(const Self& ) = delete;
 
 };
 
diff --git a/Modules/Detection/ObjectDetection/include/otbFourierMellinDescriptorsIFFactory.h b/Modules/Detection/ObjectDetection/include/otbFourierMellinDescriptorsIFFactory.h
index 4a55751a55..1c5291859b 100644
--- a/Modules/Detection/ObjectDetection/include/otbFourierMellinDescriptorsIFFactory.h
+++ b/Modules/Detection/ObjectDetection/include/otbFourierMellinDescriptorsIFFactory.h
@@ -85,8 +85,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  FourierMellinDescriptorsIFFactory(const Self& ); //purposely not implemented
-  void operator=(const Self& ); //purposely not implemented
+  FourierMellinDescriptorsIFFactory(const Self& ) = delete;
+  void operator=(const Self& ) = delete;
 
 };
 
diff --git a/Modules/Detection/ObjectDetection/include/otbHaralickTexturesIFFactory.h b/Modules/Detection/ObjectDetection/include/otbHaralickTexturesIFFactory.h
index 1169695ab1..8274254333 100644
--- a/Modules/Detection/ObjectDetection/include/otbHaralickTexturesIFFactory.h
+++ b/Modules/Detection/ObjectDetection/include/otbHaralickTexturesIFFactory.h
@@ -87,8 +87,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  HaralickTexturesIFFactory(const Self& ); //purposely not implemented
-  void operator=(const Self& ); //purposely not implemented
+  HaralickTexturesIFFactory(const Self& ) = delete;
+  void operator=(const Self& ) = delete;
 
 };
 
diff --git a/Modules/Detection/ObjectDetection/include/otbLabeledSampleLocalizationGenerator.h b/Modules/Detection/ObjectDetection/include/otbLabeledSampleLocalizationGenerator.h
index 75d2d09a9c..ebe68953a0 100644
--- a/Modules/Detection/ObjectDetection/include/otbLabeledSampleLocalizationGenerator.h
+++ b/Modules/Detection/ObjectDetection/include/otbLabeledSampleLocalizationGenerator.h
@@ -127,8 +127,8 @@ protected:
   PointVectorType PointDensification(DataNodeType * node);
 
 private:
-  LabeledSampleLocalizationGenerator(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  LabeledSampleLocalizationGenerator(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   std::string GetNextID()
   {
diff --git a/Modules/Detection/ObjectDetection/include/otbLocalHistogramIFFactory.h b/Modules/Detection/ObjectDetection/include/otbLocalHistogramIFFactory.h
index 2ff4b90c98..cbbf8d133e 100644
--- a/Modules/Detection/ObjectDetection/include/otbLocalHistogramIFFactory.h
+++ b/Modules/Detection/ObjectDetection/include/otbLocalHistogramIFFactory.h
@@ -86,8 +86,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  LocalHistogramIFFactory(const Self& ); //purposely not implemented
-  void operator=(const Self& ); //purposely not implemented
+  LocalHistogramIFFactory(const Self& ) = delete;
+  void operator=(const Self& ) = delete;
 
 };
 
diff --git a/Modules/Detection/ObjectDetection/include/otbObjectDetectionClassifier.h b/Modules/Detection/ObjectDetection/include/otbObjectDetectionClassifier.h
index 276062f0f0..52dbaa8b6c 100644
--- a/Modules/Detection/ObjectDetection/include/otbObjectDetectionClassifier.h
+++ b/Modules/Detection/ObjectDetection/include/otbObjectDetectionClassifier.h
@@ -186,8 +186,8 @@ protected:
                              itk::ThreadIdType threadId) override;
 
 private:
-  PersistentObjectDetectionClassifier(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PersistentObjectDetectionClassifier(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   template <typename TCoordRepType>
   bool
@@ -380,8 +380,8 @@ public:
     ~ObjectDetectionClassifier() override;
 
   private:
-    ObjectDetectionClassifier(const Self &); //purposely not implemented
-    void operator =(const Self&); //purposely not implemented
+    ObjectDetectionClassifier(const Self &) = delete;
+    void operator =(const Self&) = delete;
 };
 
 } // end namespace otb
diff --git a/Modules/Detection/ObjectDetection/include/otbRadiometricMomentsIFFactory.h b/Modules/Detection/ObjectDetection/include/otbRadiometricMomentsIFFactory.h
index 9d971e97b2..945fc56218 100644
--- a/Modules/Detection/ObjectDetection/include/otbRadiometricMomentsIFFactory.h
+++ b/Modules/Detection/ObjectDetection/include/otbRadiometricMomentsIFFactory.h
@@ -86,8 +86,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  RadiometricMomentsIFFactory(const Self& ); //purposely not implemented
-  void operator=(const Self& ); //purposely not implemented
+  RadiometricMomentsIFFactory(const Self& ) = delete;
+  void operator=(const Self& ) = delete;
 
 };
 
diff --git a/Modules/Detection/ObjectDetection/include/otbStandardMetaImageFunctionBuilder.h b/Modules/Detection/ObjectDetection/include/otbStandardMetaImageFunctionBuilder.h
index 3d03e06d99..02af7640de 100644
--- a/Modules/Detection/ObjectDetection/include/otbStandardMetaImageFunctionBuilder.h
+++ b/Modules/Detection/ObjectDetection/include/otbStandardMetaImageFunctionBuilder.h
@@ -174,8 +174,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  StandardMetaImageFunctionBuilder(const Self& ); //purposely not implemented
-  void operator=(const Self& ); //purposely not implemented
+  StandardMetaImageFunctionBuilder(const Self& ) = delete;
+  void operator=(const Self& ) = delete;
 
   MetaImageFunctionPointerType    m_MetaImageFunction;
   DataObjectContainerType         m_DataObjectContainer;
diff --git a/Modules/Detection/RoadExtraction/include/otbBreakAngularPathListFilter.h b/Modules/Detection/RoadExtraction/include/otbBreakAngularPathListFilter.h
index 6781f42e64..d39a63c750 100644
--- a/Modules/Detection/RoadExtraction/include/otbBreakAngularPathListFilter.h
+++ b/Modules/Detection/RoadExtraction/include/otbBreakAngularPathListFilter.h
@@ -74,8 +74,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  BreakAngularPathListFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  BreakAngularPathListFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Calculate break angular for a path */
   void BreakAngularPath(const MaxAngleType maxAngle,
diff --git a/Modules/Detection/RoadExtraction/include/otbGenericRoadExtractionFilter.h b/Modules/Detection/RoadExtraction/include/otbGenericRoadExtractionFilter.h
index e3680973f1..0ef02b0c81 100644
--- a/Modules/Detection/RoadExtraction/include/otbGenericRoadExtractionFilter.h
+++ b/Modules/Detection/RoadExtraction/include/otbGenericRoadExtractionFilter.h
@@ -203,8 +203,8 @@ protected:
 
 private:
 
-  GenericRoadExtractionFilter(const Self &); // purposely not implemented
-  void operator =(const Self&); // purposely not implemented
+  GenericRoadExtractionFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   typename SquareRootImageFilterType::Pointer m_SquareRootImageFilter;
   typename GradientFilterType::Pointer m_GradientFilter;
diff --git a/Modules/Detection/RoadExtraction/include/otbImageToPathListAlignFilter.h b/Modules/Detection/RoadExtraction/include/otbImageToPathListAlignFilter.h
index a6dd5526b4..7b1d94539a 100644
--- a/Modules/Detection/RoadExtraction/include/otbImageToPathListAlignFilter.h
+++ b/Modules/Detection/RoadExtraction/include/otbImageToPathListAlignFilter.h
@@ -137,8 +137,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ImageToPathListAlignFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImageToPathListAlignFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
   bool                m_isMeaningfulSegment; /// to get all meaningful segments (maximal or not
   int                 m_NbGradDirection; /// Number of allowed gradient direction, default 16
   int                 m_NbLineDirection; /// Number of line directions to scan, default 96)
diff --git a/Modules/Detection/RoadExtraction/include/otbLikelihoodPathListFilter.h b/Modules/Detection/RoadExtraction/include/otbLikelihoodPathListFilter.h
index 9d34f04ff7..5930c35d5a 100644
--- a/Modules/Detection/RoadExtraction/include/otbLikelihoodPathListFilter.h
+++ b/Modules/Detection/RoadExtraction/include/otbLikelihoodPathListFilter.h
@@ -92,8 +92,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  LikelihoodPathListFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  LikelihoodPathListFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   std::string m_Key;
 };
diff --git a/Modules/Detection/RoadExtraction/include/otbLinkPathListFilter.h b/Modules/Detection/RoadExtraction/include/otbLinkPathListFilter.h
index e5ab1942d4..d0fe805cf7 100644
--- a/Modules/Detection/RoadExtraction/include/otbLinkPathListFilter.h
+++ b/Modules/Detection/RoadExtraction/include/otbLinkPathListFilter.h
@@ -111,8 +111,8 @@ protected:
   PathPointerType LinkPath(PathPointerType p1, bool revert1, PathPointerType p2, bool revert2);
 
 private:
-  LinkPathListFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  LinkPathListFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   RealType m_AngularThreshold;
   RealType m_DistanceThreshold;
diff --git a/Modules/Detection/RoadExtraction/include/otbModulusAndDirectionImageToImageFilter.h b/Modules/Detection/RoadExtraction/include/otbModulusAndDirectionImageToImageFilter.h
index 83e8345b9b..ab10ba8352 100644
--- a/Modules/Detection/RoadExtraction/include/otbModulusAndDirectionImageToImageFilter.h
+++ b/Modules/Detection/RoadExtraction/include/otbModulusAndDirectionImageToImageFilter.h
@@ -81,8 +81,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ModulusAndDirectionImageToImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ModulusAndDirectionImageToImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 } // end namespace otb
diff --git a/Modules/Detection/RoadExtraction/include/otbNeighborhoodScalarProductFilter.h b/Modules/Detection/RoadExtraction/include/otbNeighborhoodScalarProductFilter.h
index 6e24abebee..2f82bf2dbb 100644
--- a/Modules/Detection/RoadExtraction/include/otbNeighborhoodScalarProductFilter.h
+++ b/Modules/Detection/RoadExtraction/include/otbNeighborhoodScalarProductFilter.h
@@ -100,8 +100,8 @@ protected:
   void ThreadedGenerateData(const OutputImageRegionType& outputRegionForThread,
                             itk::ThreadIdType threadId) override;
 private:
-  NeighborhoodScalarProductFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  NeighborhoodScalarProductFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 } // End namespace otb
 #ifndef OTB_MANUAL_INSTANTIATION
diff --git a/Modules/Detection/RoadExtraction/include/otbNonMaxRemovalByDirectionFilter.h b/Modules/Detection/RoadExtraction/include/otbNonMaxRemovalByDirectionFilter.h
index fb60b080f3..085b31ee3e 100644
--- a/Modules/Detection/RoadExtraction/include/otbNonMaxRemovalByDirectionFilter.h
+++ b/Modules/Detection/RoadExtraction/include/otbNonMaxRemovalByDirectionFilter.h
@@ -154,8 +154,8 @@ protected:
   }
 
 private:
-  NonMaxRemovalByDirectionFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  NonMaxRemovalByDirectionFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 } // End namespace otb
 #endif
diff --git a/Modules/Detection/RoadExtraction/include/otbParallelLinePathListFilter.h b/Modules/Detection/RoadExtraction/include/otbParallelLinePathListFilter.h
index ff27709602..adbae3394a 100644
--- a/Modules/Detection/RoadExtraction/include/otbParallelLinePathListFilter.h
+++ b/Modules/Detection/RoadExtraction/include/otbParallelLinePathListFilter.h
@@ -145,8 +145,8 @@ protected:
   PathPointerType WriteParallelPath(PathPointerType p1);
 
 private:
-  ParallelLinePathListFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ParallelLinePathListFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   RealType m_AngularThreshold;
   RealType m_DistanceThreshold;
diff --git a/Modules/Detection/RoadExtraction/include/otbRemoveIsolatedByDirectionFilter.h b/Modules/Detection/RoadExtraction/include/otbRemoveIsolatedByDirectionFilter.h
index ca4a40efdd..8a2b63142f 100644
--- a/Modules/Detection/RoadExtraction/include/otbRemoveIsolatedByDirectionFilter.h
+++ b/Modules/Detection/RoadExtraction/include/otbRemoveIsolatedByDirectionFilter.h
@@ -127,8 +127,8 @@ protected:
   }
 
 private:
-  RemoveIsolatedByDirectionFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  RemoveIsolatedByDirectionFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 } // End namespace otb
 #endif
diff --git a/Modules/Detection/RoadExtraction/include/otbRemoveWrongDirectionFilter.h b/Modules/Detection/RoadExtraction/include/otbRemoveWrongDirectionFilter.h
index 8812c85fa2..91b35799c5 100644
--- a/Modules/Detection/RoadExtraction/include/otbRemoveWrongDirectionFilter.h
+++ b/Modules/Detection/RoadExtraction/include/otbRemoveWrongDirectionFilter.h
@@ -122,8 +122,8 @@ protected:
   }
 
 private:
-  RemoveWrongDirectionFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  RemoveWrongDirectionFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 } // End namespace otb
 #endif
diff --git a/Modules/Detection/RoadExtraction/include/otbRoadExtractionFilter.h b/Modules/Detection/RoadExtraction/include/otbRoadExtractionFilter.h
index 79e05822d3..5259b4e0b2 100644
--- a/Modules/Detection/RoadExtraction/include/otbRoadExtractionFilter.h
+++ b/Modules/Detection/RoadExtraction/include/otbRoadExtractionFilter.h
@@ -153,8 +153,8 @@ protected:
 
 private:
 
-  RoadExtractionFilter(const Self &); // purposely not implemented
-  void operator =(const Self&); // purposely not implemented
+  RoadExtractionFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** SpectralAngleDistanceImageFilter use by the composite filter */
   typename SpectralAngleDistanceImageFilterType::Pointer m_SpectralAngleDistanceImageFilter;
diff --git a/Modules/Detection/RoadExtraction/include/otbVectorDataToRoadDescriptionFilter.h b/Modules/Detection/RoadExtraction/include/otbVectorDataToRoadDescriptionFilter.h
index 48744453c0..1d2c6bfe01 100644
--- a/Modules/Detection/RoadExtraction/include/otbVectorDataToRoadDescriptionFilter.h
+++ b/Modules/Detection/RoadExtraction/include/otbVectorDataToRoadDescriptionFilter.h
@@ -123,8 +123,8 @@ protected:
   void GenerateData(void) override;
 
 private:
-  VectorDataToRoadDescriptionFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VectorDataToRoadDescriptionFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   typename ParserConditionFeatureFunctionType::Pointer  m_NDVIFeatureFunction;
   typename ParserConditionFeatureFunctionType::Pointer  m_SpectralAngleFeatureFunction;
diff --git a/Modules/Detection/UrbanArea/include/otbUrbanAreaDetectionImageFilter.h b/Modules/Detection/UrbanArea/include/otbUrbanAreaDetectionImageFilter.h
index f8c133af97..03ff84dfde 100644
--- a/Modules/Detection/UrbanArea/include/otbUrbanAreaDetectionImageFilter.h
+++ b/Modules/Detection/UrbanArea/include/otbUrbanAreaDetectionImageFilter.h
@@ -239,8 +239,8 @@ protected:
   ~UrbanAreaDetectionImageFilter() override{}
 
 private:
-  UrbanAreaDetectionImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  UrbanAreaDetectionImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Filters */
   IntensityFilterPointerType          m_IntensityFilter;
diff --git a/Modules/Feature/Corner/include/otbHarrisImageFilter.h b/Modules/Feature/Corner/include/otbHarrisImageFilter.h
index f784a3159a..9fae4a897f 100644
--- a/Modules/Feature/Corner/include/otbHarrisImageFilter.h
+++ b/Modules/Feature/Corner/include/otbHarrisImageFilter.h
@@ -111,8 +111,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  HarrisImageFilter(const Self&); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  HarrisImageFilter(const Self&) = delete;
+  void operator =(const Self&) = delete;
 
   double m_SigmaD;
   double m_SigmaI;
diff --git a/Modules/Feature/Corner/include/otbHarrisImageToPointSetFilter.h b/Modules/Feature/Corner/include/otbHarrisImageToPointSetFilter.h
index badc48a0d1..39eaa3bce2 100644
--- a/Modules/Feature/Corner/include/otbHarrisImageToPointSetFilter.h
+++ b/Modules/Feature/Corner/include/otbHarrisImageToPointSetFilter.h
@@ -85,8 +85,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  HarrisImageToPointSetFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  HarrisImageToPointSetFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   InputPixelType m_LowerThreshold;
   InputPixelType m_UpperThreshold;
diff --git a/Modules/Feature/Corner/include/otbLineSpatialObjectListToRightAnglePointSetFilter.h b/Modules/Feature/Corner/include/otbLineSpatialObjectListToRightAnglePointSetFilter.h
index 68c594ec0b..e8d4c6c0a8 100644
--- a/Modules/Feature/Corner/include/otbLineSpatialObjectListToRightAnglePointSetFilter.h
+++ b/Modules/Feature/Corner/include/otbLineSpatialObjectListToRightAnglePointSetFilter.h
@@ -145,8 +145,8 @@ protected:
 
 private:
 
-  LineSpatialObjectListToRightAnglePointSetFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  LineSpatialObjectListToRightAnglePointSetFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Smart pointer on the output PointSet*/
   OutputPointSetPointerType m_OutputPointSet;
diff --git a/Modules/Feature/Corner/include/otbVectorDataToRightAngleVectorDataFilter.h b/Modules/Feature/Corner/include/otbVectorDataToRightAngleVectorDataFilter.h
index a2c985fc20..b07920e67c 100644
--- a/Modules/Feature/Corner/include/otbVectorDataToRightAngleVectorDataFilter.h
+++ b/Modules/Feature/Corner/include/otbVectorDataToRightAngleVectorDataFilter.h
@@ -102,8 +102,8 @@ protected:
   virtual double ComputeDistanceFromPointToSegment(PointType rAngle, LineType * line);
 
 private:
-  VectorDataToRightAngleVectorDataFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VectorDataToRightAngleVectorDataFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   double m_DistanceThreshold;
   double m_AngleThreshold;
diff --git a/Modules/Feature/Density/include/otbKeyPointDensityImageFilter.h b/Modules/Feature/Density/include/otbKeyPointDensityImageFilter.h
index 2944414abd..a1f07c482d 100644
--- a/Modules/Feature/Density/include/otbKeyPointDensityImageFilter.h
+++ b/Modules/Feature/Density/include/otbKeyPointDensityImageFilter.h
@@ -112,8 +112,8 @@ protected:
 
 private:
 
-  KeyPointDensityImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  KeyPointDensityImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   DetectorPointerType               m_Detector;
   PointSetToDensityImagePointerType m_PointSetToDensityImageFilter;
diff --git a/Modules/Feature/Density/include/otbPointSetDensityEpanechnikovFunction.h b/Modules/Feature/Density/include/otbPointSetDensityEpanechnikovFunction.h
index 6abb4fc1c0..2080f6f2a7 100644
--- a/Modules/Feature/Density/include/otbPointSetDensityEpanechnikovFunction.h
+++ b/Modules/Feature/Density/include/otbPointSetDensityEpanechnikovFunction.h
@@ -74,8 +74,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  PointSetDensityEpanechnikovFunction(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  PointSetDensityEpanechnikovFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   unsigned int m_Radius;
 };
diff --git a/Modules/Feature/Density/include/otbPointSetDensityFunction.h b/Modules/Feature/Density/include/otbPointSetDensityFunction.h
index fc1d0ccff4..271fdf3e5f 100644
--- a/Modules/Feature/Density/include/otbPointSetDensityFunction.h
+++ b/Modules/Feature/Density/include/otbPointSetDensityFunction.h
@@ -73,8 +73,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  PointSetDensityFunction(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  PointSetDensityFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   unsigned int m_Radius;
 };
diff --git a/Modules/Feature/Density/include/otbPointSetDensityGaussianFunction.h b/Modules/Feature/Density/include/otbPointSetDensityGaussianFunction.h
index 44fadcfc97..f4ec551e79 100644
--- a/Modules/Feature/Density/include/otbPointSetDensityGaussianFunction.h
+++ b/Modules/Feature/Density/include/otbPointSetDensityGaussianFunction.h
@@ -74,8 +74,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  PointSetDensityGaussianFunction(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  PointSetDensityGaussianFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   unsigned int m_Radius;
 };
diff --git a/Modules/Feature/Density/include/otbPointSetToDensityImageFilter.h b/Modules/Feature/Density/include/otbPointSetToDensityImageFilter.h
index 47f61fe050..bd07312edd 100644
--- a/Modules/Feature/Density/include/otbPointSetToDensityImageFilter.h
+++ b/Modules/Feature/Density/include/otbPointSetToDensityImageFilter.h
@@ -106,8 +106,8 @@ protected:
 
 private:
 
-  PointSetToDensityImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PointSetToDensityImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   unsigned int m_Radius;
 };
diff --git a/Modules/Feature/Descriptors/include/otbForwardFourierMellinTransformImageFilter.h b/Modules/Feature/Descriptors/include/otbForwardFourierMellinTransformImageFilter.h
index 56fa10d27f..8c7474ec8a 100644
--- a/Modules/Feature/Descriptors/include/otbForwardFourierMellinTransformImageFilter.h
+++ b/Modules/Feature/Descriptors/include/otbForwardFourierMellinTransformImageFilter.h
@@ -140,8 +140,8 @@ protected:
   void GenerateData() override;
 
 private:
-  ForwardFourierMellinTransformImageFilter(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  ForwardFourierMellinTransformImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Sigma for normalization */
   double m_Sigma;
diff --git a/Modules/Feature/Descriptors/include/otbFourierMellinDescriptorsImageFunction.h b/Modules/Feature/Descriptors/include/otbFourierMellinDescriptorsImageFunction.h
index 9eac6eeebc..0a78af0f05 100644
--- a/Modules/Feature/Descriptors/include/otbFourierMellinDescriptorsImageFunction.h
+++ b/Modules/Feature/Descriptors/include/otbFourierMellinDescriptorsImageFunction.h
@@ -135,8 +135,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  FourierMellinDescriptorsImageFunction(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  FourierMellinDescriptorsImageFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   unsigned int m_Pmax;
   unsigned int m_Qmax;
diff --git a/Modules/Feature/Descriptors/include/otbHessianToScalarImageFilter.h b/Modules/Feature/Descriptors/include/otbHessianToScalarImageFilter.h
index 67a5ca55c6..c8ac8bae48 100644
--- a/Modules/Feature/Descriptors/include/otbHessianToScalarImageFilter.h
+++ b/Modules/Feature/Descriptors/include/otbHessianToScalarImageFilter.h
@@ -110,8 +110,8 @@ protected:
   ~HessianToScalarImageFilter() override {}
 
 private:
-  HessianToScalarImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  HessianToScalarImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Feature/Descriptors/include/otbHistogramOfOrientedGradientCovariantImageFunction.h b/Modules/Feature/Descriptors/include/otbHistogramOfOrientedGradientCovariantImageFunction.h
index 930982a8ab..82d0b64555 100644
--- a/Modules/Feature/Descriptors/include/otbHistogramOfOrientedGradientCovariantImageFunction.h
+++ b/Modules/Feature/Descriptors/include/otbHistogramOfOrientedGradientCovariantImageFunction.h
@@ -138,8 +138,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  HistogramOfOrientedGradientCovariantImageFunction(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  HistogramOfOrientedGradientCovariantImageFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   // Radius over which the principal orientation will be computed
   unsigned int m_NeighborhoodRadius;
diff --git a/Modules/Feature/Descriptors/include/otbImageToSIFTKeyPointSetFilter.h b/Modules/Feature/Descriptors/include/otbImageToSIFTKeyPointSetFilter.h
index e554389b15..e4386292c1 100644
--- a/Modules/Feature/Descriptors/include/otbImageToSIFTKeyPointSetFilter.h
+++ b/Modules/Feature/Descriptors/include/otbImageToSIFTKeyPointSetFilter.h
@@ -305,8 +305,8 @@ protected:
                                                    const PixelType& orientation);
 
 private:
-  ImageToSIFTKeyPointSetFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImageToSIFTKeyPointSetFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Number of octaves */
   unsigned int m_OctavesNumber;
diff --git a/Modules/Feature/Descriptors/include/otbImageToSURFKeyPointSetFilter.h b/Modules/Feature/Descriptors/include/otbImageToSURFKeyPointSetFilter.h
index bb8b1f2e6d..0dd8d10791 100644
--- a/Modules/Feature/Descriptors/include/otbImageToSURFKeyPointSetFilter.h
+++ b/Modules/Feature/Descriptors/include/otbImageToSURFKeyPointSetFilter.h
@@ -207,8 +207,8 @@ protected:
 
 private:
 
-  ImageToSURFKeyPointSetFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImageToSURFKeyPointSetFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Number of octaves */
   int m_OctavesNumber;
diff --git a/Modules/Feature/Descriptors/include/otbKeyPointSetsMatchingFilter.h b/Modules/Feature/Descriptors/include/otbKeyPointSetsMatchingFilter.h
index bf16d31549..d5851c125e 100644
--- a/Modules/Feature/Descriptors/include/otbKeyPointSetsMatchingFilter.h
+++ b/Modules/Feature/Descriptors/include/otbKeyPointSetsMatchingFilter.h
@@ -116,8 +116,8 @@ protected:
   NeighborSearchResultType NearestNeighbor(const PointDataType& data1, const PointSetType * pointset);
 
 private:
-  KeyPointSetsMatchingFilter(const Self &); // purposely not implemented
-  void operator =(const Self&);             // purposely not implemented
+  KeyPointSetsMatchingFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   // Find back matches from 2 to 1 to validate them
   bool m_UseBackMatching;
diff --git a/Modules/Feature/Descriptors/include/otbLandmark.h b/Modules/Feature/Descriptors/include/otbLandmark.h
index 997e5da5e5..3a6d68f0e9 100644
--- a/Modules/Feature/Descriptors/include/otbLandmark.h
+++ b/Modules/Feature/Descriptors/include/otbLandmark.h
@@ -81,8 +81,8 @@ protected:
   }
 
 private:
-  Landmark(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  Landmark(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /// First landmark point
   PointType m_Point1;
diff --git a/Modules/Feature/Edge/include/otbAssociativeSymmetricalSumImageFilter.h b/Modules/Feature/Edge/include/otbAssociativeSymmetricalSumImageFilter.h
index b0c011244c..af57eee90e 100644
--- a/Modules/Feature/Edge/include/otbAssociativeSymmetricalSumImageFilter.h
+++ b/Modules/Feature/Edge/include/otbAssociativeSymmetricalSumImageFilter.h
@@ -97,8 +97,8 @@ protected:
   ~AssociativeSymmetricalSumImageFilter() override {}
 
 private:
-  AssociativeSymmetricalSumImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  AssociativeSymmetricalSumImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Feature/Edge/include/otbAsymmetricFusionOfLineDetectorImageFilter.h b/Modules/Feature/Edge/include/otbAsymmetricFusionOfLineDetectorImageFilter.h
index 991f9c1b5e..b05a3de798 100644
--- a/Modules/Feature/Edge/include/otbAsymmetricFusionOfLineDetectorImageFilter.h
+++ b/Modules/Feature/Edge/include/otbAsymmetricFusionOfLineDetectorImageFilter.h
@@ -95,8 +95,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  AsymmetricFusionOfLineDetectorImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  AsymmetricFusionOfLineDetectorImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   typename LineRatioType::Pointer m_LineRatio;
   typename LineCorrelationType::Pointer m_LineCorrelation;
diff --git a/Modules/Feature/Edge/include/otbEdgeDensityImageFilter.h b/Modules/Feature/Edge/include/otbEdgeDensityImageFilter.h
index 2b789dfe75..9bdddd6390 100644
--- a/Modules/Feature/Edge/include/otbEdgeDensityImageFilter.h
+++ b/Modules/Feature/Edge/include/otbEdgeDensityImageFilter.h
@@ -116,8 +116,8 @@ protected:
 
 private:
 
-  EdgeDensityImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  EdgeDensityImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   DetectorPointerType     m_Detector;
   DensityImagePointerType m_DensityImageFilter;
diff --git a/Modules/Feature/Edge/include/otbEdgeDetectorImageFilter.h b/Modules/Feature/Edge/include/otbEdgeDetectorImageFilter.h
index 33fffc7376..d0c50c4707 100644
--- a/Modules/Feature/Edge/include/otbEdgeDetectorImageFilter.h
+++ b/Modules/Feature/Edge/include/otbEdgeDetectorImageFilter.h
@@ -116,8 +116,8 @@ protected:
 
 private:
 
-  EdgeDetectorImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  EdgeDetectorImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   DetectionPointerType    m_Detector;
   BinaryFilterPointerType m_BinaryFilter;
diff --git a/Modules/Feature/Edge/include/otbExtractSegmentsImageFilter.h b/Modules/Feature/Edge/include/otbExtractSegmentsImageFilter.h
index 76323b278a..fe557e5224 100644
--- a/Modules/Feature/Edge/include/otbExtractSegmentsImageFilter.h
+++ b/Modules/Feature/Edge/include/otbExtractSegmentsImageFilter.h
@@ -141,8 +141,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ExtractSegmentsImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ExtractSegmentsImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   typename OutputImageType::PixelType m_LineValue;
 
diff --git a/Modules/Feature/Edge/include/otbFillGapsFilter.h b/Modules/Feature/Edge/include/otbFillGapsFilter.h
index 3364b55fab..05be226320 100644
--- a/Modules/Feature/Edge/include/otbFillGapsFilter.h
+++ b/Modules/Feature/Edge/include/otbFillGapsFilter.h
@@ -78,8 +78,8 @@ protected:
   void GenerateData() override;
 
 private:
-  FillGapsFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  FillGapsFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   double m_AngularBeam;
   double m_Radius;
diff --git a/Modules/Feature/Edge/include/otbLineCorrelationDetectorImageFilter.h b/Modules/Feature/Edge/include/otbLineCorrelationDetectorImageFilter.h
index 915054394b..abac114da0 100644
--- a/Modules/Feature/Edge/include/otbLineCorrelationDetectorImageFilter.h
+++ b/Modules/Feature/Edge/include/otbLineCorrelationDetectorImageFilter.h
@@ -92,8 +92,8 @@ protected:
   double ComputeMeasure(std::vector<double>* m1, std::vector<double>* m2, std::vector<double>* m3) override;
 
 private:
-  LineCorrelationDetectorImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  LineCorrelationDetectorImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 } // end namespace otb
diff --git a/Modules/Feature/Edge/include/otbLineDetectorImageFilterBase.h b/Modules/Feature/Edge/include/otbLineDetectorImageFilterBase.h
index bcc411f568..cbd7713119 100644
--- a/Modules/Feature/Edge/include/otbLineDetectorImageFilterBase.h
+++ b/Modules/Feature/Edge/include/otbLineDetectorImageFilterBase.h
@@ -171,8 +171,8 @@ protected:
 
   unsigned int m_NumberOfDirections;
 private:
-  LineDetectorImageFilterBase(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  LineDetectorImageFilterBase(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 } // end namespace otb
diff --git a/Modules/Feature/Edge/include/otbLineRatioDetectorImageFilter.h b/Modules/Feature/Edge/include/otbLineRatioDetectorImageFilter.h
index 3ed85b87e2..6a77da7f3b 100644
--- a/Modules/Feature/Edge/include/otbLineRatioDetectorImageFilter.h
+++ b/Modules/Feature/Edge/include/otbLineRatioDetectorImageFilter.h
@@ -120,8 +120,8 @@ protected:
   double ComputeMeasure(std::vector<double>* m1, std::vector<double>* m2, std::vector<double>* m3) override;
 
 private:
-  LineRatioDetectorImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  LineRatioDetectorImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 } // end namespace otb
diff --git a/Modules/Feature/Edge/include/otbLineSegmentDetector.h b/Modules/Feature/Edge/include/otbLineSegmentDetector.h
index ef78f8c8f1..4cc70ff2cf 100644
--- a/Modules/Feature/Edge/include/otbLineSegmentDetector.h
+++ b/Modules/Feature/Edge/include/otbLineSegmentDetector.h
@@ -260,8 +260,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  LineSegmentDetector(const Self &);  //purposely not implemented
-  void operator =(const Self&);      //purposely not implemented
+  LineSegmentDetector(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   VectorOfIndexVectorType m_RegionList;
   DirectionVectorType     m_DirectionVector;
diff --git a/Modules/Feature/Edge/include/otbLocalHoughFilter.h b/Modules/Feature/Edge/include/otbLocalHoughFilter.h
index 38ff44693b..365febc98f 100644
--- a/Modules/Feature/Edge/include/otbLocalHoughFilter.h
+++ b/Modules/Feature/Edge/include/otbLocalHoughFilter.h
@@ -139,8 +139,8 @@ protected:
   void GenerateData() override;
 
 private:
-  LocalHoughFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  LocalHoughFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Radius used to define the local region. */
   SizeType m_Radius;
diff --git a/Modules/Feature/Edge/include/otbPersistentVectorizationImageFilter.h b/Modules/Feature/Edge/include/otbPersistentVectorizationImageFilter.h
index 4bcf136cdc..cf7e0cf03e 100644
--- a/Modules/Feature/Edge/include/otbPersistentVectorizationImageFilter.h
+++ b/Modules/Feature/Edge/include/otbPersistentVectorizationImageFilter.h
@@ -94,8 +94,8 @@ protected:
   void GenerateData() override;
 
 private:
-  PersistentVectorizationImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PersistentVectorizationImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   // Min max filter (the mini-pipeline)
   MinMaxFilterPointerType m_MinMaxFilter;
diff --git a/Modules/Feature/Edge/include/otbPixelSuppressionByDirectionImageFilter.h b/Modules/Feature/Edge/include/otbPixelSuppressionByDirectionImageFilter.h
index 1213469178..2da9dac793 100644
--- a/Modules/Feature/Edge/include/otbPixelSuppressionByDirectionImageFilter.h
+++ b/Modules/Feature/Edge/include/otbPixelSuppressionByDirectionImageFilter.h
@@ -114,8 +114,8 @@ protected:
                             itk::ThreadIdType threadId) override;
 
 private:
-  PixelSuppressionByDirectionImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PixelSuppressionByDirectionImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   // Radius of the region
   SizeType m_Radius;
diff --git a/Modules/Feature/Edge/include/otbStreamingLineSegmentDetector.h b/Modules/Feature/Edge/include/otbStreamingLineSegmentDetector.h
index d17ab84ccc..fc250afcf3 100644
--- a/Modules/Feature/Edge/include/otbStreamingLineSegmentDetector.h
+++ b/Modules/Feature/Edge/include/otbStreamingLineSegmentDetector.h
@@ -83,8 +83,8 @@ protected:
   void GenerateInputRequestedRegion() override;
 
 private:
-  PersistentStreamingLineSegmentDetector(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PersistentStreamingLineSegmentDetector(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   OutputVectorDataPointerType ProcessTile() override;
 };
diff --git a/Modules/Feature/Edge/include/otbTouziEdgeDetectorImageFilter.h b/Modules/Feature/Edge/include/otbTouziEdgeDetectorImageFilter.h
index 90b1cc18e9..37393478a3 100644
--- a/Modules/Feature/Edge/include/otbTouziEdgeDetectorImageFilter.h
+++ b/Modules/Feature/Edge/include/otbTouziEdgeDetectorImageFilter.h
@@ -122,8 +122,8 @@ protected:
                             itk::ThreadIdType threadId) override;
 
 private:
-  TouziEdgeDetectorImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  TouziEdgeDetectorImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Radius declaration */
   SizeType m_Radius;
diff --git a/Modules/Feature/Moments/include/otbComplexMomentPathFunction.h b/Modules/Feature/Moments/include/otbComplexMomentPathFunction.h
index 83d638752e..6c1b29f682 100644
--- a/Modules/Feature/Moments/include/otbComplexMomentPathFunction.h
+++ b/Modules/Feature/Moments/include/otbComplexMomentPathFunction.h
@@ -106,8 +106,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ComplexMomentPathFunction(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  ComplexMomentPathFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
   ComplexPrecisionType EvaluateComplexMomentAtIndex(VertexType index) const;
 
   unsigned int m_P;
diff --git a/Modules/Feature/Moments/include/otbComplexMomentsImageFunction.h b/Modules/Feature/Moments/include/otbComplexMomentsImageFunction.h
index 5f86297032..42b10edd4f 100644
--- a/Modules/Feature/Moments/include/otbComplexMomentsImageFunction.h
+++ b/Modules/Feature/Moments/include/otbComplexMomentsImageFunction.h
@@ -126,8 +126,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ComplexMomentsImageFunction(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  ComplexMomentsImageFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   unsigned int m_Pmax;
   unsigned int m_Qmax;
diff --git a/Modules/Feature/Moments/include/otbFlusserMomentsImageFunction.h b/Modules/Feature/Moments/include/otbFlusserMomentsImageFunction.h
index 4590e02153..4b8bf18288 100644
--- a/Modules/Feature/Moments/include/otbFlusserMomentsImageFunction.h
+++ b/Modules/Feature/Moments/include/otbFlusserMomentsImageFunction.h
@@ -137,8 +137,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  FlusserMomentsImageFunction(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  FlusserMomentsImageFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   unsigned int m_NeighborhoodRadius;
 };
diff --git a/Modules/Feature/Moments/include/otbFlusserPathFunction.h b/Modules/Feature/Moments/include/otbFlusserPathFunction.h
index 4f6e4788b8..9955d55334 100644
--- a/Modules/Feature/Moments/include/otbFlusserPathFunction.h
+++ b/Modules/Feature/Moments/include/otbFlusserPathFunction.h
@@ -106,8 +106,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  FlusserPathFunction(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  FlusserPathFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   short m_MomentNumber;
 };
diff --git a/Modules/Feature/Moments/include/otbGeometricMomentPathFunction.h b/Modules/Feature/Moments/include/otbGeometricMomentPathFunction.h
index c02171118b..6a444cb7bb 100644
--- a/Modules/Feature/Moments/include/otbGeometricMomentPathFunction.h
+++ b/Modules/Feature/Moments/include/otbGeometricMomentPathFunction.h
@@ -70,8 +70,8 @@ protected:
   }
 
 private:
-  GeometricMomentPathFunction(const Self &);  //purposely not implemented
-  void operator =(const Self&);                //purposely not implemented
+  GeometricMomentPathFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // namespace otb
diff --git a/Modules/Feature/Moments/include/otbHuMomentsImageFunction.h b/Modules/Feature/Moments/include/otbHuMomentsImageFunction.h
index 3c319ecfb3..0f344ccee6 100644
--- a/Modules/Feature/Moments/include/otbHuMomentsImageFunction.h
+++ b/Modules/Feature/Moments/include/otbHuMomentsImageFunction.h
@@ -133,8 +133,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  HuMomentsImageFunction(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  HuMomentsImageFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   unsigned int m_NeighborhoodRadius;
 };
diff --git a/Modules/Feature/Moments/include/otbHuPathFunction.h b/Modules/Feature/Moments/include/otbHuPathFunction.h
index 855460a704..1174935d27 100644
--- a/Modules/Feature/Moments/include/otbHuPathFunction.h
+++ b/Modules/Feature/Moments/include/otbHuPathFunction.h
@@ -103,8 +103,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  HuPathFunction(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  HuPathFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   short m_MomentNumber;
 };
diff --git a/Modules/Feature/Moments/include/otbRadiometricMomentsImageFilter.h b/Modules/Feature/Moments/include/otbRadiometricMomentsImageFilter.h
index 6508a9ce8e..72ef9176c6 100644
--- a/Modules/Feature/Moments/include/otbRadiometricMomentsImageFilter.h
+++ b/Modules/Feature/Moments/include/otbRadiometricMomentsImageFilter.h
@@ -98,8 +98,8 @@ protected:
   void GenerateOutputInformation(void) override;
 
 private:
-  RadiometricMomentsImageFilter(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  RadiometricMomentsImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   InputImageSizeType m_Radius;
   FunctorType m_Functor;
diff --git a/Modules/Feature/Moments/include/otbRadiometricMomentsImageFunction.h b/Modules/Feature/Moments/include/otbRadiometricMomentsImageFunction.h
index 49563faaaf..23a70bcb0d 100644
--- a/Modules/Feature/Moments/include/otbRadiometricMomentsImageFunction.h
+++ b/Modules/Feature/Moments/include/otbRadiometricMomentsImageFunction.h
@@ -118,8 +118,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  RadiometricMomentsImageFunction(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  RadiometricMomentsImageFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   unsigned int m_NeighborhoodRadius;
   FunctorType m_Functor;
diff --git a/Modules/Feature/Moments/include/otbRealMomentPathFunction.h b/Modules/Feature/Moments/include/otbRealMomentPathFunction.h
index fdb123749a..d217279e1b 100644
--- a/Modules/Feature/Moments/include/otbRealMomentPathFunction.h
+++ b/Modules/Feature/Moments/include/otbRealMomentPathFunction.h
@@ -74,8 +74,8 @@ protected:
   }
 
 private:
-  RealMomentPathFunction(const Self &);  //purposely not implemented
-  void operator =(const Self&);                //purposely not implemented
+  RealMomentPathFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // namespace otb
diff --git a/Modules/Feature/Moments/include/otbRealMomentsImageFunction.h b/Modules/Feature/Moments/include/otbRealMomentsImageFunction.h
index d535d989cb..96d50a31da 100644
--- a/Modules/Feature/Moments/include/otbRealMomentsImageFunction.h
+++ b/Modules/Feature/Moments/include/otbRealMomentsImageFunction.h
@@ -113,8 +113,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  RealMomentsImageFunction(const Self &);  //purposely not implemented
-  void operator =(const Self&);           //purposely not implemented
+  RealMomentsImageFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   unsigned int m_Pmax;
   unsigned int m_Qmax;
diff --git a/Modules/Feature/SeamCarving/include/otbAddCarvingPathFilter.h b/Modules/Feature/SeamCarving/include/otbAddCarvingPathFilter.h
index 4c8f48760d..dd1bef6975 100644
--- a/Modules/Feature/SeamCarving/include/otbAddCarvingPathFilter.h
+++ b/Modules/Feature/SeamCarving/include/otbAddCarvingPathFilter.h
@@ -125,8 +125,8 @@ protected:
   void GenerateData() override;
 
 private:
-  AddCarvingPathFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  AddCarvingPathFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   OutputImagePixelType m_Value;
   unsigned int         m_Direction;
diff --git a/Modules/Feature/SeamCarving/include/otbImageToCarvingPathFilter.h b/Modules/Feature/SeamCarving/include/otbImageToCarvingPathFilter.h
index d48e79b04c..47e68f6a0f 100644
--- a/Modules/Feature/SeamCarving/include/otbImageToCarvingPathFilter.h
+++ b/Modules/Feature/SeamCarving/include/otbImageToCarvingPathFilter.h
@@ -99,8 +99,8 @@ protected:
   void GenerateData() override;
 
 private:
-  ImageToCarvingPathFilter(const Self &); // purposely not implemented
-  void operator =(const Self&); // purposely not implemented
+  ImageToCarvingPathFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   PixelType    m_ForegroundValue;
   unsigned int m_Direction;
diff --git a/Modules/Feature/SeamCarving/include/otbRemoveCarvingPathFilter.h b/Modules/Feature/SeamCarving/include/otbRemoveCarvingPathFilter.h
index 3ad0f99046..93bc57457b 100644
--- a/Modules/Feature/SeamCarving/include/otbRemoveCarvingPathFilter.h
+++ b/Modules/Feature/SeamCarving/include/otbRemoveCarvingPathFilter.h
@@ -125,8 +125,8 @@ protected:
   void GenerateData() override;
 
 private:
-  RemoveCarvingPathFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  RemoveCarvingPathFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   OutputImagePixelType m_Value;
   unsigned int         m_Direction;
diff --git a/Modules/Feature/Textures/include/otbGreyLevelCooccurrenceIndexedList.h b/Modules/Feature/Textures/include/otbGreyLevelCooccurrenceIndexedList.h
index 6e3cd1707a..08be9dbedd 100644
--- a/Modules/Feature/Textures/include/otbGreyLevelCooccurrenceIndexedList.h
+++ b/Modules/Feature/Textures/include/otbGreyLevelCooccurrenceIndexedList.h
@@ -159,8 +159,8 @@ protected:
 
 private:
 
-  GreyLevelCooccurrenceIndexedList(const Self&); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  GreyLevelCooccurrenceIndexedList(const Self&) = delete;
+  void operator =(const Self&) = delete;
 
   /** LookupArray instance */
   LookupArrayType m_LookupArray;
diff --git a/Modules/Feature/Textures/include/otbHaralickTexturesImageFunction.h b/Modules/Feature/Textures/include/otbHaralickTexturesImageFunction.h
index bc717f3838..fbbdbbc872 100644
--- a/Modules/Feature/Textures/include/otbHaralickTexturesImageFunction.h
+++ b/Modules/Feature/Textures/include/otbHaralickTexturesImageFunction.h
@@ -207,8 +207,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  HaralickTexturesImageFunction(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  HaralickTexturesImageFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Radius of the neighborhood over which to compute the textures */
   unsigned int m_NeighborhoodRadius;
diff --git a/Modules/Feature/Textures/include/otbSFSTexturesImageFilter.h b/Modules/Feature/Textures/include/otbSFSTexturesImageFilter.h
index a415527900..b05eace44b 100644
--- a/Modules/Feature/Textures/include/otbSFSTexturesImageFilter.h
+++ b/Modules/Feature/Textures/include/otbSFSTexturesImageFilter.h
@@ -227,8 +227,8 @@ protected:
   void GenerateInputRequestedRegion(void) override;
 
 private:
-  SFSTexturesImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  SFSTexturesImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   unsigned int m_Radius;
   FunctorType  m_Functor;
diff --git a/Modules/Feature/Textures/include/otbScalarImageToAdvancedTexturesFilter.h b/Modules/Feature/Textures/include/otbScalarImageToAdvancedTexturesFilter.h
index 22d3fe478e..4b6b233f9b 100644
--- a/Modules/Feature/Textures/include/otbScalarImageToAdvancedTexturesFilter.h
+++ b/Modules/Feature/Textures/include/otbScalarImageToAdvancedTexturesFilter.h
@@ -224,8 +224,8 @@ protected:
   void ThreadedGenerateData(const OutputRegionType& outputRegion, itk::ThreadIdType threadId) override;
 
 private:
-  ScalarImageToAdvancedTexturesFilter(const Self&); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ScalarImageToAdvancedTexturesFilter(const Self&) = delete;
+  void operator =(const Self&) = delete;
 
   /** Convenient method to compute union of 2 regions */
   static OutputRegionType RegionUnion(const OutputRegionType& region1, const OutputRegionType& region2);
diff --git a/Modules/Feature/Textures/include/otbScalarImageToHigherOrderTexturesFilter.h b/Modules/Feature/Textures/include/otbScalarImageToHigherOrderTexturesFilter.h
index 72b6517fff..64943649a0 100644
--- a/Modules/Feature/Textures/include/otbScalarImageToHigherOrderTexturesFilter.h
+++ b/Modules/Feature/Textures/include/otbScalarImageToHigherOrderTexturesFilter.h
@@ -209,8 +209,8 @@ protected:
   void ThreadedGenerateData(const OutputRegionType& outputRegion, itk::ThreadIdType threadId) override;
 
 private:
-  ScalarImageToHigherOrderTexturesFilter(const Self&); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ScalarImageToHigherOrderTexturesFilter(const Self&) = delete;
+  void operator =(const Self&) = delete;
 
   /** Convenient method to compute union of 2 regions */
   static OutputRegionType RegionUnion(const OutputRegionType& region1, const OutputRegionType& region2);
diff --git a/Modules/Feature/Textures/include/otbScalarImageToPanTexTextureFilter.h b/Modules/Feature/Textures/include/otbScalarImageToPanTexTextureFilter.h
index 3c5d650069..62bcff4a85 100644
--- a/Modules/Feature/Textures/include/otbScalarImageToPanTexTextureFilter.h
+++ b/Modules/Feature/Textures/include/otbScalarImageToPanTexTextureFilter.h
@@ -121,8 +121,8 @@ protected:
   void ThreadedGenerateData(const OutputRegionType& outputRegion, itk::ThreadIdType threadId) override;
 
 private:
-  ScalarImageToPanTexTextureFilter(const Self&); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ScalarImageToPanTexTextureFilter(const Self&) = delete;
+  void operator =(const Self&) = delete;
 
   /** Convenient method to compute union of 2 regions */
   static OutputRegionType RegionUnion(const OutputRegionType& region1, const OutputRegionType& region2);
diff --git a/Modules/Feature/Textures/include/otbScalarImageToTexturesFilter.h b/Modules/Feature/Textures/include/otbScalarImageToTexturesFilter.h
index b3732a164a..f6471ec1c5 100644
--- a/Modules/Feature/Textures/include/otbScalarImageToTexturesFilter.h
+++ b/Modules/Feature/Textures/include/otbScalarImageToTexturesFilter.h
@@ -220,8 +220,8 @@ protected:
   void ThreadedGenerateData(const OutputRegionType& outputRegion, itk::ThreadIdType threadId) override;
 
 private:
-  ScalarImageToTexturesFilter(const Self&); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ScalarImageToTexturesFilter(const Self&) = delete;
+  void operator =(const Self&) = delete;
 
   /** Convenient method to compute union of 2 regions */
   static OutputRegionType RegionUnion(const OutputRegionType& region1, const OutputRegionType& region2);
diff --git a/Modules/Feature/Textures/include/otbTextureImageFunction.h b/Modules/Feature/Textures/include/otbTextureImageFunction.h
index 02040fe05f..a5bf535619 100644
--- a/Modules/Feature/Textures/include/otbTextureImageFunction.h
+++ b/Modules/Feature/Textures/include/otbTextureImageFunction.h
@@ -124,8 +124,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  TextureImageFunction(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  TextureImageFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   SizeType   m_Radius;
   OffsetType m_Offset;
diff --git a/Modules/Filtering/ChangeDetection/include/otbBinaryFunctorNeighborhoodJoinHistogramImageFilter.h b/Modules/Filtering/ChangeDetection/include/otbBinaryFunctorNeighborhoodJoinHistogramImageFilter.h
index 3b82bad169..47495938a1 100644
--- a/Modules/Filtering/ChangeDetection/include/otbBinaryFunctorNeighborhoodJoinHistogramImageFilter.h
+++ b/Modules/Filtering/ChangeDetection/include/otbBinaryFunctorNeighborhoodJoinHistogramImageFilter.h
@@ -175,8 +175,8 @@ protected:
   HistogramType::Pointer m_Histogram;
 
 private:
-  BinaryFunctorNeighborhoodJoinHistogramImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  BinaryFunctorNeighborhoodJoinHistogramImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   void ComputeHistogram();
 
diff --git a/Modules/Filtering/ChangeDetection/include/otbCBAMIChangeDetector.h b/Modules/Filtering/ChangeDetection/include/otbCBAMIChangeDetector.h
index e6650ce676..ec9ec9a832 100644
--- a/Modules/Filtering/ChangeDetection/include/otbCBAMIChangeDetector.h
+++ b/Modules/Filtering/ChangeDetection/include/otbCBAMIChangeDetector.h
@@ -87,8 +87,8 @@ protected:
   ~CBAMIChangeDetector() override {}
 
 private:
-  CBAMIChangeDetector(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  CBAMIChangeDetector(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/ChangeDetection/include/otbCorrelationChangeDetector.h b/Modules/Filtering/ChangeDetection/include/otbCorrelationChangeDetector.h
index 4b710c4bba..2ab1209eef 100644
--- a/Modules/Filtering/ChangeDetection/include/otbCorrelationChangeDetector.h
+++ b/Modules/Filtering/ChangeDetection/include/otbCorrelationChangeDetector.h
@@ -86,8 +86,8 @@ protected:
   ~CorrelationChangeDetector() override {}
 
 private:
-  CorrelationChangeDetector(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  CorrelationChangeDetector(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/ChangeDetection/include/otbJoinHistogramMIImageFilter.h b/Modules/Filtering/ChangeDetection/include/otbJoinHistogramMIImageFilter.h
index 98f736f84a..9026cfdb08 100644
--- a/Modules/Filtering/ChangeDetection/include/otbJoinHistogramMIImageFilter.h
+++ b/Modules/Filtering/ChangeDetection/include/otbJoinHistogramMIImageFilter.h
@@ -87,8 +87,8 @@ protected:
   ~JoinHistogramMIImageFilter() override {}
 
 private:
-  JoinHistogramMIImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  JoinHistogramMIImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/ChangeDetection/include/otbKullbackLeiblerDistanceImageFilter.h b/Modules/Filtering/ChangeDetection/include/otbKullbackLeiblerDistanceImageFilter.h
index ad9c088b64..f51d0fd638 100644
--- a/Modules/Filtering/ChangeDetection/include/otbKullbackLeiblerDistanceImageFilter.h
+++ b/Modules/Filtering/ChangeDetection/include/otbKullbackLeiblerDistanceImageFilter.h
@@ -173,8 +173,8 @@ protected:
   ~KullbackLeiblerDistanceImageFilter() override {}
 
 private:
-  KullbackLeiblerDistanceImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  KullbackLeiblerDistanceImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/ChangeDetection/include/otbKullbackLeiblerProfileImageFilter.h b/Modules/Filtering/ChangeDetection/include/otbKullbackLeiblerProfileImageFilter.h
index bced45b78b..ee680d2edd 100644
--- a/Modules/Filtering/ChangeDetection/include/otbKullbackLeiblerProfileImageFilter.h
+++ b/Modules/Filtering/ChangeDetection/include/otbKullbackLeiblerProfileImageFilter.h
@@ -190,8 +190,8 @@ protected:
   ~KullbackLeiblerProfileImageFilter() override {}
 
 private:
-  KullbackLeiblerProfileImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  KullbackLeiblerProfileImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/ChangeDetection/include/otbKullbackLeiblerSupervizedDistanceImageFilter.h b/Modules/Filtering/ChangeDetection/include/otbKullbackLeiblerSupervizedDistanceImageFilter.h
index b26619d8e2..209d6e8b17 100644
--- a/Modules/Filtering/ChangeDetection/include/otbKullbackLeiblerSupervizedDistanceImageFilter.h
+++ b/Modules/Filtering/ChangeDetection/include/otbKullbackLeiblerSupervizedDistanceImageFilter.h
@@ -155,8 +155,8 @@ protected:
   ~KullbackLeiblerSupervizedDistanceImageFilter() override {}
 
 private:
-  KullbackLeiblerSupervizedDistanceImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  KullbackLeiblerSupervizedDistanceImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/ChangeDetection/include/otbLHMIChangeDetector.h b/Modules/Filtering/ChangeDetection/include/otbLHMIChangeDetector.h
index bb54a51f66..b30faa0ca7 100644
--- a/Modules/Filtering/ChangeDetection/include/otbLHMIChangeDetector.h
+++ b/Modules/Filtering/ChangeDetection/include/otbLHMIChangeDetector.h
@@ -87,8 +87,8 @@ protected:
   ~LHMIChangeDetector() override {}
 
 private:
-  LHMIChangeDetector(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  LHMIChangeDetector(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/ChangeDetection/include/otbMeanDifferenceImageFilter.h b/Modules/Filtering/ChangeDetection/include/otbMeanDifferenceImageFilter.h
index a93d1b6bc9..01c65edd0b 100644
--- a/Modules/Filtering/ChangeDetection/include/otbMeanDifferenceImageFilter.h
+++ b/Modules/Filtering/ChangeDetection/include/otbMeanDifferenceImageFilter.h
@@ -85,8 +85,8 @@ protected:
   ~MeanDifferenceImageFilter() override {}
 
 private:
-  MeanDifferenceImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  MeanDifferenceImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/ChangeDetection/include/otbMeanRatioImageFilter.h b/Modules/Filtering/ChangeDetection/include/otbMeanRatioImageFilter.h
index 48aa6ae096..ee8cbf70e5 100644
--- a/Modules/Filtering/ChangeDetection/include/otbMeanRatioImageFilter.h
+++ b/Modules/Filtering/ChangeDetection/include/otbMeanRatioImageFilter.h
@@ -83,8 +83,8 @@ protected:
   ~MeanRatioImageFilter() override {}
 
 private:
-  MeanRatioImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  MeanRatioImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/ChangeDetection/include/otbMultivariateAlterationDetectorImageFilter.h b/Modules/Filtering/ChangeDetection/include/otbMultivariateAlterationDetectorImageFilter.h
index 51bc83c9b8..a89729f0ab 100644
--- a/Modules/Filtering/ChangeDetection/include/otbMultivariateAlterationDetectorImageFilter.h
+++ b/Modules/Filtering/ChangeDetection/include/otbMultivariateAlterationDetectorImageFilter.h
@@ -162,8 +162,8 @@ protected:
   void GenerateOutputInformation() override;
 
 private:
-  MultivariateAlterationDetectorImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  MultivariateAlterationDetectorImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   CovarianceEstimatorPointer m_CovarianceEstimator;
   MatrixType                 m_CovarianceMatrix;
diff --git a/Modules/Filtering/ColorMap/include/otbReliefColormapFunctor.h b/Modules/Filtering/ColorMap/include/otbReliefColormapFunctor.h
index 5ea5632698..39d5f44fcd 100644
--- a/Modules/Filtering/ColorMap/include/otbReliefColormapFunctor.h
+++ b/Modules/Filtering/ColorMap/include/otbReliefColormapFunctor.h
@@ -65,8 +65,8 @@ protected:
   ~ReliefColormapFunctor() override {}
 
 private:
-  ReliefColormapFunctor(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ReliefColormapFunctor(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // end namespace functor
diff --git a/Modules/Filtering/ColorMap/include/otbScalarToRainbowRGBPixelFunctor.h b/Modules/Filtering/ColorMap/include/otbScalarToRainbowRGBPixelFunctor.h
index c5b8a54923..1282cda0b6 100644
--- a/Modules/Filtering/ColorMap/include/otbScalarToRainbowRGBPixelFunctor.h
+++ b/Modules/Filtering/ColorMap/include/otbScalarToRainbowRGBPixelFunctor.h
@@ -160,8 +160,8 @@ protected:
   RGBPixelType HSVToRGB(double h, double s, double v) const;
 
 private:
-  ScalarToRainbowRGBPixelFunctor(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ScalarToRainbowRGBPixelFunctor(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   HSVToRGBFunctorType m_HSVToRGBFunctor;
 };
diff --git a/Modules/Filtering/Convolution/include/otbConvolutionImageFilter.h b/Modules/Filtering/Convolution/include/otbConvolutionImageFilter.h
index 1eabaf7c1a..f7c9c1206e 100644
--- a/Modules/Filtering/Convolution/include/otbConvolutionImageFilter.h
+++ b/Modules/Filtering/Convolution/include/otbConvolutionImageFilter.h
@@ -183,8 +183,8 @@ protected:
     throw(itk::InvalidRequestedRegionError) override;
 
 private:
-  ConvolutionImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ConvolutionImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Radius of the filter */
   InputSizeType m_Radius;
diff --git a/Modules/Filtering/Convolution/include/otbGaborFilterGenerator.h b/Modules/Filtering/Convolution/include/otbGaborFilterGenerator.h
index 9f26a1c94d..edd770eb4b 100644
--- a/Modules/Filtering/Convolution/include/otbGaborFilterGenerator.h
+++ b/Modules/Filtering/Convolution/include/otbGaborFilterGenerator.h
@@ -125,8 +125,8 @@ protected:
   void Modified() const override;
 
 private:
-  GaborFilterGenerator(const Self&); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  GaborFilterGenerator(const Self&) = delete;
+  void operator =(const Self&) = delete;
 
   /** Radius of the filter */
   RadiusType m_Radius;
diff --git a/Modules/Filtering/Convolution/include/otbOverlapSaveConvolutionImageFilter.h b/Modules/Filtering/Convolution/include/otbOverlapSaveConvolutionImageFilter.h
index a72ed2dfa9..d806a1782b 100644
--- a/Modules/Filtering/Convolution/include/otbOverlapSaveConvolutionImageFilter.h
+++ b/Modules/Filtering/Convolution/include/otbOverlapSaveConvolutionImageFilter.h
@@ -164,8 +164,8 @@ protected:
   // void ThreadedGenerateData(const OutputImageRegionType& outputRegionForThread, itk::ThreadIdType threadId);
 
 private:
-  OverlapSaveConvolutionImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  OverlapSaveConvolutionImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Radius of the filter */
   InputSizeType m_Radius;
diff --git a/Modules/Filtering/DEM/include/otbDEMToImageGenerator.h b/Modules/Filtering/DEM/include/otbDEMToImageGenerator.h
index cc1e5d4de7..7b9866c51c 100644
--- a/Modules/Filtering/DEM/include/otbDEMToImageGenerator.h
+++ b/Modules/Filtering/DEM/include/otbDEMToImageGenerator.h
@@ -192,8 +192,8 @@ protected:
   bool                    m_AboveEllipsoid;
 
 private:
-  DEMToImageGenerator(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  DEMToImageGenerator(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   GenericRSTransformPointerType      m_Transform;
 };
diff --git a/Modules/Filtering/DimensionalityReduction/include/otbEstimateInnerProductPCAImageFilter.h b/Modules/Filtering/DimensionalityReduction/include/otbEstimateInnerProductPCAImageFilter.h
index 1864a7e5f9..54287e49af 100644
--- a/Modules/Filtering/DimensionalityReduction/include/otbEstimateInnerProductPCAImageFilter.h
+++ b/Modules/Filtering/DimensionalityReduction/include/otbEstimateInnerProductPCAImageFilter.h
@@ -95,8 +95,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  EstimateInnerProductPCAImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  EstimateInnerProductPCAImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** The number of output Principal Components */
   unsigned int m_NumberOfPrincipalComponentsRequired;
diff --git a/Modules/Filtering/DimensionalityReduction/include/otbFastICAImageFilter.h b/Modules/Filtering/DimensionalityReduction/include/otbFastICAImageFilter.h
index 5e9d614342..064032466a 100644
--- a/Modules/Filtering/DimensionalityReduction/include/otbFastICAImageFilter.h
+++ b/Modules/Filtering/DimensionalityReduction/include/otbFastICAImageFilter.h
@@ -192,8 +192,8 @@ protected:
   TransformFilterPointerType m_TransformFilter;
 
 private:
-  FastICAImageFilter( const Self & ); //purposely not implemented
-  void operator =( const Self & ); //purposely not implemented
+  FastICAImageFilter( const Self & ) = delete;
+  void operator =( const Self & ) = delete;
 }; // end of class
 
 } // end of namespace otb
diff --git a/Modules/Filtering/DimensionalityReduction/include/otbInnerProductPCAImageFilter.h b/Modules/Filtering/DimensionalityReduction/include/otbInnerProductPCAImageFilter.h
index d63ad8da0f..c0cdfd353c 100644
--- a/Modules/Filtering/DimensionalityReduction/include/otbInnerProductPCAImageFilter.h
+++ b/Modules/Filtering/DimensionalityReduction/include/otbInnerProductPCAImageFilter.h
@@ -140,8 +140,8 @@ protected:
   void GenerateOutputInformation() override;
 
 private:
-  InnerProductPCAImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  InnerProductPCAImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** The number of largest principal components  */
   unsigned int m_NumberOfPrincipalComponentsRequired;
diff --git a/Modules/Filtering/DimensionalityReduction/include/otbMaximumAutocorrelationFactorImageFilter.h b/Modules/Filtering/DimensionalityReduction/include/otbMaximumAutocorrelationFactorImageFilter.h
index d32b18d0a9..d9fa6f3c72 100644
--- a/Modules/Filtering/DimensionalityReduction/include/otbMaximumAutocorrelationFactorImageFilter.h
+++ b/Modules/Filtering/DimensionalityReduction/include/otbMaximumAutocorrelationFactorImageFilter.h
@@ -141,8 +141,8 @@ protected:
   void GenerateOutputInformation() override;
 
 private:
-  MaximumAutocorrelationFactorImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  MaximumAutocorrelationFactorImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** The covariance estimator for the image */
   CovarianceEstimatorPointer m_CovarianceEstimator;
diff --git a/Modules/Filtering/ImageManipulation/include/otbBinaryFunctorImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbBinaryFunctorImageFilter.h
index ec60c693df..47a453d10c 100644
--- a/Modules/Filtering/ImageManipulation/include/otbBinaryFunctorImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbBinaryFunctorImageFilter.h
@@ -74,8 +74,8 @@ protected:
   }
 
 private:
-  BinaryFunctorImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  BinaryFunctorImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/ImageManipulation/include/otbBinaryFunctorNeighborhoodImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbBinaryFunctorNeighborhoodImageFilter.h
index a8f69d607e..be6ed177f3 100644
--- a/Modules/Filtering/ImageManipulation/include/otbBinaryFunctorNeighborhoodImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbBinaryFunctorNeighborhoodImageFilter.h
@@ -153,8 +153,8 @@ protected:
   RadiusSizeType m_Radius;
 
 private:
-  BinaryFunctorNeighborhoodImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  BinaryFunctorNeighborhoodImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   FunctorType m_Functor;
 };
diff --git a/Modules/Filtering/ImageManipulation/include/otbBinaryFunctorNeighborhoodVectorImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbBinaryFunctorNeighborhoodVectorImageFilter.h
index dfc99b5f0b..716ddffc5f 100644
--- a/Modules/Filtering/ImageManipulation/include/otbBinaryFunctorNeighborhoodVectorImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbBinaryFunctorNeighborhoodVectorImageFilter.h
@@ -143,8 +143,8 @@ protected:
   RadiusSizeType m_Radius;
 
 private:
-  BinaryFunctorNeighborhoodVectorImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  BinaryFunctorNeighborhoodVectorImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   FunctorType m_Functor;
 };
diff --git a/Modules/Filtering/ImageManipulation/include/otbBinaryImageDensityFunction.h b/Modules/Filtering/ImageManipulation/include/otbBinaryImageDensityFunction.h
index 8ab7e0c989..2bff0830a2 100644
--- a/Modules/Filtering/ImageManipulation/include/otbBinaryImageDensityFunction.h
+++ b/Modules/Filtering/ImageManipulation/include/otbBinaryImageDensityFunction.h
@@ -111,8 +111,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  BinaryImageDensityFunction(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  BinaryImageDensityFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   RadiusType m_NeighborhoodRadius;
 
diff --git a/Modules/Filtering/ImageManipulation/include/otbBinaryImageMinimalBoundingRegionCalculator.h b/Modules/Filtering/ImageManipulation/include/otbBinaryImageMinimalBoundingRegionCalculator.h
index fea7f9a8e8..d92770582b 100644
--- a/Modules/Filtering/ImageManipulation/include/otbBinaryImageMinimalBoundingRegionCalculator.h
+++ b/Modules/Filtering/ImageManipulation/include/otbBinaryImageMinimalBoundingRegionCalculator.h
@@ -76,8 +76,8 @@ protected:
   /** PrintSelf method */
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 private:
-  BinaryImageMinimalBoundingRegionCalculator(const Self &); // purposely not implemented
-  void operator =(const Self&); // purposely not implemented
+  BinaryImageMinimalBoundingRegionCalculator(const Self &) = delete;
+  void operator =(const Self&) = delete;
   /** The computed region */
   RegionType m_Region;
   /** Toogle if pad wanted */
diff --git a/Modules/Filtering/ImageManipulation/include/otbBinaryImageToDensityImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbBinaryImageToDensityImageFilter.h
index 029b9344b3..c4643f0fe9 100644
--- a/Modules/Filtering/ImageManipulation/include/otbBinaryImageToDensityImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbBinaryImageToDensityImageFilter.h
@@ -90,8 +90,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  BinaryImageToDensityImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  BinaryImageToDensityImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   CountFunctionPointerType m_CountFunction;
 
diff --git a/Modules/Filtering/ImageManipulation/include/otbChangeInformationImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbChangeInformationImageFilter.h
index 3bbce052ee..513067e457 100644
--- a/Modules/Filtering/ImageManipulation/include/otbChangeInformationImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbChangeInformationImageFilter.h
@@ -75,8 +75,8 @@ protected:
   void GenerateOutputInformation() override;
 
 private:
-  ChangeInformationImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ChangeInformationImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** List of metadata keys to change */
   std::set<std::string> m_ChangedKeys;
diff --git a/Modules/Filtering/ImageManipulation/include/otbChangeLabelImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbChangeLabelImageFilter.h
index b367f140c8..61b28b9415 100644
--- a/Modules/Filtering/ImageManipulation/include/otbChangeLabelImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbChangeLabelImageFilter.h
@@ -172,8 +172,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ChangeLabelImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ChangeLabelImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /// Number of components per pixel
   unsigned int m_NumberOfComponentsPerPixel;
diff --git a/Modules/Filtering/ImageManipulation/include/otbChangeNoDataValueFilter.h b/Modules/Filtering/ImageManipulation/include/otbChangeNoDataValueFilter.h
index b4e8149461..5c8149772f 100644
--- a/Modules/Filtering/ImageManipulation/include/otbChangeNoDataValueFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbChangeNoDataValueFilter.h
@@ -174,8 +174,8 @@ protected:
   }
 
 private:
-  ChangeNoDataValueFilter(const Self&); // purposely not implemented
-  void operator =(const Self&); // purposely not implemented
+  ChangeNoDataValueFilter(const Self&) = delete;
+  void operator =(const Self&) = delete;
 
 }; 
 
diff --git a/Modules/Filtering/ImageManipulation/include/otbClampVectorImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbClampVectorImageFilter.h
index 84ff84cb59..2703b00568 100644
--- a/Modules/Filtering/ImageManipulation/include/otbClampVectorImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbClampVectorImageFilter.h
@@ -131,8 +131,8 @@ protected:
   }
 
 private:
-  ClampVectorImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  ClampVectorImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   double m_DLower;
   double m_DUpper;
diff --git a/Modules/Filtering/ImageManipulation/include/otbConcatenateScalarValueImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbConcatenateScalarValueImageFilter.h
index 7f9cf3f068..16fd357f76 100644
--- a/Modules/Filtering/ImageManipulation/include/otbConcatenateScalarValueImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbConcatenateScalarValueImageFilter.h
@@ -148,9 +148,9 @@ protected:
   void GenerateOutputInformation() override;
 
 private:
-  ConcatenateScalarValueImageFilter(const Self &); //purposely not implemented
+  ConcatenateScalarValueImageFilter(const Self &) = delete;
 
-  void operator =(const Self&); //purposely not implemented
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/ImageManipulation/include/otbConcatenateVectorImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbConcatenateVectorImageFilter.h
index 30fad1ad60..4b3ca239f2 100644
--- a/Modules/Filtering/ImageManipulation/include/otbConcatenateVectorImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbConcatenateVectorImageFilter.h
@@ -104,8 +104,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ConcatenateVectorImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ConcatenateVectorImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 } // end namespace otb
 #ifndef OTB_MANUAL_INSTANTIATION
diff --git a/Modules/Filtering/ImageManipulation/include/otbFunctionWithNeighborhoodToImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbFunctionWithNeighborhoodToImageFilter.h
index 61168d59d1..3491ffa706 100644
--- a/Modules/Filtering/ImageManipulation/include/otbFunctionWithNeighborhoodToImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbFunctionWithNeighborhoodToImageFilter.h
@@ -142,8 +142,8 @@ protected:
                             itk::ThreadIdType threadId) override;
 
 private:
-  FunctionWithNeighborhoodToImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  FunctionWithNeighborhoodToImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   //FunctionPointerType  m_Function;
   FunctionPointerType              m_Function;
diff --git a/Modules/Filtering/ImageManipulation/include/otbGridResampleImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbGridResampleImageFilter.h
index 23655ef667..8acc6ecbf4 100644
--- a/Modules/Filtering/ImageManipulation/include/otbGridResampleImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbGridResampleImageFilter.h
@@ -189,8 +189,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  GridResampleImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  GridResampleImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   IndexType              m_OutputStartIndex;     // output image start index
   SizeType               m_OutputSize;            // output image size
diff --git a/Modules/Filtering/ImageManipulation/include/otbHillShadingFilter.h b/Modules/Filtering/ImageManipulation/include/otbHillShadingFilter.h
index 9779f1de6f..c67cd78541 100644
--- a/Modules/Filtering/ImageManipulation/include/otbHillShadingFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbHillShadingFilter.h
@@ -85,8 +85,8 @@ protected:
   ~HillShadingFilter() override {}
 
 private:
-  HillShadingFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  HillShadingFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/ImageManipulation/include/otbImageToNoDataMaskFilter.h b/Modules/Filtering/ImageManipulation/include/otbImageToNoDataMaskFilter.h
index 8ec6c7850a..993871668e 100644
--- a/Modules/Filtering/ImageManipulation/include/otbImageToNoDataMaskFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbImageToNoDataMaskFilter.h
@@ -156,8 +156,8 @@ protected:
   }
 
 private:
-  ImageToNoDataMaskFilter(const Self&); // purposely not implemented
-  void operator =(const Self&); // purposely not implemented
+  ImageToNoDataMaskFilter(const Self&) = delete;
+  void operator =(const Self&) = delete;
 }; 
 
 } // End namespace otb
diff --git a/Modules/Filtering/ImageManipulation/include/otbImageToVectorImageCastFilter.h b/Modules/Filtering/ImageManipulation/include/otbImageToVectorImageCastFilter.h
index 3425e90a5e..0d7b11b0c3 100644
--- a/Modules/Filtering/ImageManipulation/include/otbImageToVectorImageCastFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbImageToVectorImageCastFilter.h
@@ -116,8 +116,8 @@ protected:
   }
 
 private:
-  ImageToVectorImageCastFilter(const Self &); //purposely not implemented
-  void operator =(const Self&);  // purposely not implemented
+  ImageToVectorImageCastFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 } // end namespace otb
 #endif
diff --git a/Modules/Filtering/ImageManipulation/include/otbLog10ThresholdedImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbLog10ThresholdedImageFilter.h
index 36c7fb14bb..10b6b5dcd4 100644
--- a/Modules/Filtering/ImageManipulation/include/otbLog10ThresholdedImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbLog10ThresholdedImageFilter.h
@@ -107,8 +107,8 @@ protected:
   ~Log10ThresholdedImageFilter() override {}
 
 private:
-  Log10ThresholdedImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  Log10ThresholdedImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/ImageManipulation/include/otbMatrixImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbMatrixImageFilter.h
index 611dc22ef3..db2bd2da37 100644
--- a/Modules/Filtering/ImageManipulation/include/otbMatrixImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbMatrixImageFilter.h
@@ -131,8 +131,8 @@ protected:
                             itk::ThreadIdType threadId) override;
 
 private:
-  MatrixImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  MatrixImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Matrix declaration */
   MatrixType m_Matrix;
diff --git a/Modules/Filtering/ImageManipulation/include/otbMultiplyByScalarImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbMultiplyByScalarImageFilter.h
index 8cc130a728..25712fa3a2 100644
--- a/Modules/Filtering/ImageManipulation/include/otbMultiplyByScalarImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbMultiplyByScalarImageFilter.h
@@ -104,8 +104,8 @@ protected:
   ~MultiplyByScalarImageFilter() override {}
 
 private:
-  MultiplyByScalarImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  MultiplyByScalarImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/ImageManipulation/include/otbNRIBandImagesToOneNComplexBandsImage.h b/Modules/Filtering/ImageManipulation/include/otbNRIBandImagesToOneNComplexBandsImage.h
index 9d482cd70d..5bd1a876c6 100644
--- a/Modules/Filtering/ImageManipulation/include/otbNRIBandImagesToOneNComplexBandsImage.h
+++ b/Modules/Filtering/ImageManipulation/include/otbNRIBandImagesToOneNComplexBandsImage.h
@@ -81,8 +81,8 @@ protected:
                             itk::ThreadIdType threadId) override;
 
 private:
-  NRIBandImagesToOneNComplexBandsImage(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  NRIBandImagesToOneNComplexBandsImage(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 
 };
diff --git a/Modules/Filtering/ImageManipulation/include/otbOneRIBandImageToOneComplexBandImage.h b/Modules/Filtering/ImageManipulation/include/otbOneRIBandImageToOneComplexBandImage.h
index faf49f1b09..07ee238693 100644
--- a/Modules/Filtering/ImageManipulation/include/otbOneRIBandImageToOneComplexBandImage.h
+++ b/Modules/Filtering/ImageManipulation/include/otbOneRIBandImageToOneComplexBandImage.h
@@ -81,8 +81,8 @@ protected:
                             itk::ThreadIdType threadId) override;
 
 private:
-  OneRIBandImageToOneComplexBandImage(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  OneRIBandImageToOneComplexBandImage(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 
 };
diff --git a/Modules/Filtering/ImageManipulation/include/otbPerBandVectorImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbPerBandVectorImageFilter.h
index 9654ccebf4..10e25c7f38 100644
--- a/Modules/Filtering/ImageManipulation/include/otbPerBandVectorImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbPerBandVectorImageFilter.h
@@ -108,8 +108,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  PerBandVectorImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PerBandVectorImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /// The processing filter
   FilterPointerType m_Filter;
diff --git a/Modules/Filtering/ImageManipulation/include/otbRealAndImaginaryImageToComplexImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbRealAndImaginaryImageToComplexImageFilter.h
index e473277d1c..bf5d06c957 100644
--- a/Modules/Filtering/ImageManipulation/include/otbRealAndImaginaryImageToComplexImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbRealAndImaginaryImageToComplexImageFilter.h
@@ -119,8 +119,8 @@ protected:
   ~RealAndImaginaryImageToComplexImageFilter() override {}
 
 private:
-  RealAndImaginaryImageToComplexImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  RealAndImaginaryImageToComplexImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/ImageManipulation/include/otbRealImageToComplexImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbRealImageToComplexImageFilter.h
index 0c4168b247..1ce63313fc 100644
--- a/Modules/Filtering/ImageManipulation/include/otbRealImageToComplexImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbRealImageToComplexImageFilter.h
@@ -96,8 +96,8 @@ protected:
   ~RealImageToComplexImageFilter() override {}
 
 private:
-  RealImageToComplexImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  RealImageToComplexImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/ImageManipulation/include/otbShiftScaleImageAdaptor.h b/Modules/Filtering/ImageManipulation/include/otbShiftScaleImageAdaptor.h
index 68f9865352..7223499180 100644
--- a/Modules/Filtering/ImageManipulation/include/otbShiftScaleImageAdaptor.h
+++ b/Modules/Filtering/ImageManipulation/include/otbShiftScaleImageAdaptor.h
@@ -169,8 +169,8 @@ protected:
   ~ShiftScaleImageAdaptor() override {}
 
 private:
-  ShiftScaleImageAdaptor(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ShiftScaleImageAdaptor(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/ImageManipulation/include/otbShiftScaleVectorImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbShiftScaleVectorImageFilter.h
index 9b90aee8cd..5924b31d00 100644
--- a/Modules/Filtering/ImageManipulation/include/otbShiftScaleVectorImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbShiftScaleVectorImageFilter.h
@@ -209,8 +209,8 @@ protected:
   void GenerateInputRequestedRegion(void) override;
 
 private:
-  ShiftScaleVectorImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  ShiftScaleVectorImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   InputPixelType  m_Scale;
   InputPixelType  m_Shift;
diff --git a/Modules/Filtering/ImageManipulation/include/otbSpectralAngleDistanceImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbSpectralAngleDistanceImageFilter.h
index 7cf4f3c442..3efa48850e 100644
--- a/Modules/Filtering/ImageManipulation/include/otbSpectralAngleDistanceImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbSpectralAngleDistanceImageFilter.h
@@ -103,8 +103,8 @@ protected:
   void BeforeThreadedGenerateData() override;
 
 private:
-  SpectralAngleDistanceImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  SpectralAngleDistanceImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** The reference pixel */
   InputPixelType m_ReferencePixel;
diff --git a/Modules/Filtering/ImageManipulation/include/otbStreamingInnerProductVectorImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbStreamingInnerProductVectorImageFilter.h
index 423cbab313..48eec84de7 100644
--- a/Modules/Filtering/ImageManipulation/include/otbStreamingInnerProductVectorImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbStreamingInnerProductVectorImageFilter.h
@@ -126,8 +126,8 @@ protected:
   void  ThreadedGenerateData(const RegionType& outputRegionForThread, itk::ThreadIdType threadId) override;
 
 private:
-  PersistentInnerProductVectorImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PersistentInnerProductVectorImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   ArrayMatrixType m_ThreadInnerProduct;
 
@@ -220,8 +220,8 @@ protected:
   ~StreamingInnerProductVectorImageFilter() override {}
 
 private:
-  StreamingInnerProductVectorImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  StreamingInnerProductVectorImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/ImageManipulation/include/otbStreamingMatrixTransposeMatrixImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbStreamingMatrixTransposeMatrixImageFilter.h
index f79ead12bb..67175f4d36 100644
--- a/Modules/Filtering/ImageManipulation/include/otbStreamingMatrixTransposeMatrixImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbStreamingMatrixTransposeMatrixImageFilter.h
@@ -171,8 +171,8 @@ protected:
   void  ThreadedGenerateData(const RegionType& outputRegionForThread, itk::ThreadIdType threadId) override;
 
 private:
-  PersistentMatrixTransposeMatrixImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PersistentMatrixTransposeMatrixImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   ArrayMatrixType m_ThreadSum;
   bool            m_UsePadFirstInput;
@@ -277,8 +277,8 @@ protected:
   ~StreamingMatrixTransposeMatrixImageFilter() override {}
 
 private:
-  StreamingMatrixTransposeMatrixImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  StreamingMatrixTransposeMatrixImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // end namespace otb
diff --git a/Modules/Filtering/ImageManipulation/include/otbStreamingResampleImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbStreamingResampleImageFilter.h
index 164d9d19e2..19c15d4e6c 100644
--- a/Modules/Filtering/ImageManipulation/include/otbStreamingResampleImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbStreamingResampleImageFilter.h
@@ -187,8 +187,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  StreamingResampleImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  StreamingResampleImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   //We need this to respect ConstRef macro and to be compliant with itk positive 
   //spacing
diff --git a/Modules/Filtering/ImageManipulation/include/otbStreamingShrinkImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbStreamingShrinkImageFilter.h
index c48e2d2e2e..972c2efe6c 100644
--- a/Modules/Filtering/ImageManipulation/include/otbStreamingShrinkImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbStreamingShrinkImageFilter.h
@@ -93,8 +93,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  StreamingShrinkImageRegionSplitter(const StreamingShrinkImageRegionSplitter &); //purposely not implemented
-  void operator =(const StreamingShrinkImageRegionSplitter&); //purposely not implemented
+  StreamingShrinkImageRegionSplitter(const StreamingShrinkImageRegionSplitter &) = delete;
+  void operator =(const StreamingShrinkImageRegionSplitter&) = delete;
 
   itk::FixedArray<unsigned int, ImageDimension> m_SplitsPerDimension;
   unsigned int m_TileDimension;
@@ -147,8 +147,8 @@ protected:
   ~StreamingShrinkStreamingManager() override;
 
 private:
-  StreamingShrinkStreamingManager(const StreamingShrinkStreamingManager &); //purposely not implemented
-  void operator =(const StreamingShrinkStreamingManager&); //purposely not implemented
+  StreamingShrinkStreamingManager(const StreamingShrinkStreamingManager &) = delete;
+  void operator =(const StreamingShrinkStreamingManager&) = delete;
 
   unsigned int m_ShrinkFactor;
 };
@@ -233,8 +233,8 @@ protected:
 
 
 private:
-  PersistentShrinkImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PersistentShrinkImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /* the output shrunk image */
   OutputImagePointer m_ShrunkOutput;
@@ -324,8 +324,8 @@ protected:
   ~StreamingShrinkImageFilter() override {}
 
 private:
-  StreamingShrinkImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  StreamingShrinkImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   StreamingShrinkStreamingManagerPointerType m_StreamingManager;
 };
diff --git a/Modules/Filtering/ImageManipulation/include/otbTernaryFunctorImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbTernaryFunctorImageFilter.h
index 483f2e3275..1271eb825d 100644
--- a/Modules/Filtering/ImageManipulation/include/otbTernaryFunctorImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbTernaryFunctorImageFilter.h
@@ -74,8 +74,8 @@ protected:
   }
 
 private:
-  TernaryFunctorImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  TernaryFunctorImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/ImageManipulation/include/otbThresholdVectorImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbThresholdVectorImageFilter.h
index cf87797e75..886e9bb811 100644
--- a/Modules/Filtering/ImageManipulation/include/otbThresholdVectorImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbThresholdVectorImageFilter.h
@@ -122,8 +122,8 @@ protected:
   }
 
 private:
-  ThresholdVectorImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  ThresholdVectorImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   OutputImageInternalPixelType m_OutsideValue;
   InputImageInternalPixelType m_Lower;
diff --git a/Modules/Filtering/ImageManipulation/include/otbTileImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbTileImageFilter.h
index 7eb50db4f4..5cd29f76ab 100644
--- a/Modules/Filtering/ImageManipulation/include/otbTileImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbTileImageFilter.h
@@ -103,8 +103,8 @@ protected:
 
 
 private:
-  TileImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  TileImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   // Compute the overlapping region between the output requested
   // region and the nth input tile largest region
diff --git a/Modules/Filtering/ImageManipulation/include/otbTwoNRIBandsImageToNComplexBandsImage.h b/Modules/Filtering/ImageManipulation/include/otbTwoNRIBandsImageToNComplexBandsImage.h
index 64020282a3..67a727f2aa 100644
--- a/Modules/Filtering/ImageManipulation/include/otbTwoNRIBandsImageToNComplexBandsImage.h
+++ b/Modules/Filtering/ImageManipulation/include/otbTwoNRIBandsImageToNComplexBandsImage.h
@@ -82,8 +82,8 @@ protected:
                             itk::ThreadIdType threadId) override;
 
 private:
-  TwoNRIBandsImageToNComplexBandsImage(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  TwoNRIBandsImageToNComplexBandsImage(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 
 };
diff --git a/Modules/Filtering/ImageManipulation/include/otbUnaryFunctorNeighborhoodImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbUnaryFunctorNeighborhoodImageFilter.h
index b925c64959..811362868c 100644
--- a/Modules/Filtering/ImageManipulation/include/otbUnaryFunctorNeighborhoodImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbUnaryFunctorNeighborhoodImageFilter.h
@@ -143,8 +143,8 @@ protected:
   void GenerateInputRequestedRegion(void) override;
 
 private:
-  UnaryFunctorNeighborhoodImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  UnaryFunctorNeighborhoodImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   InputImageSizeType m_Radius;
   FunctorType        m_Functor;
diff --git a/Modules/Filtering/ImageManipulation/include/otbUnaryFunctorNeighborhoodWithOffsetImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbUnaryFunctorNeighborhoodWithOffsetImageFilter.h
index d562ea0810..c46e4ed2bc 100644
--- a/Modules/Filtering/ImageManipulation/include/otbUnaryFunctorNeighborhoodWithOffsetImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbUnaryFunctorNeighborhoodWithOffsetImageFilter.h
@@ -156,8 +156,8 @@ protected:
   std::vector<FunctorType> m_FunctorList;
 
 private:
-  UnaryFunctorNeighborhoodWithOffsetImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  UnaryFunctorNeighborhoodWithOffsetImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   InputImageSizeType m_Radius;
 
diff --git a/Modules/Filtering/ImageManipulation/include/otbUnaryFunctorWithIndexImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbUnaryFunctorWithIndexImageFilter.h
index 34e42c34bc..a6c5562dde 100644
--- a/Modules/Filtering/ImageManipulation/include/otbUnaryFunctorWithIndexImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbUnaryFunctorWithIndexImageFilter.h
@@ -131,8 +131,8 @@ protected:
   void GenerateInputRequestedRegion(void) override;
 
 private:
-  UnaryFunctorWithIndexImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  UnaryFunctorWithIndexImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   FunctorType m_Functor;
 };
diff --git a/Modules/Filtering/ImageManipulation/include/otbVectorImageTo3DScalarImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbVectorImageTo3DScalarImageFilter.h
index ba02992064..5f2bcc51f4 100644
--- a/Modules/Filtering/ImageManipulation/include/otbVectorImageTo3DScalarImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbVectorImageTo3DScalarImageFilter.h
@@ -91,8 +91,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  VectorImageTo3DScalarImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VectorImageTo3DScalarImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 } // End namespace otb
 #ifndef OTB_MANUAL_INSTANTIATION
diff --git a/Modules/Filtering/ImageManipulation/include/otbVectorImageToAmplitudeImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbVectorImageToAmplitudeImageFilter.h
index 09602f7650..8e64219c1c 100644
--- a/Modules/Filtering/ImageManipulation/include/otbVectorImageToAmplitudeImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbVectorImageToAmplitudeImageFilter.h
@@ -92,8 +92,8 @@ protected:
   }
 
 private:
-  VectorImageToAmplitudeImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VectorImageToAmplitudeImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // End namespace otb
diff --git a/Modules/Filtering/ImageManipulation/include/otbVectorRescaleIntensityImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbVectorRescaleIntensityImageFilter.h
index f221719f73..a8ac2d4d55 100644
--- a/Modules/Filtering/ImageManipulation/include/otbVectorRescaleIntensityImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbVectorRescaleIntensityImageFilter.h
@@ -278,8 +278,8 @@ protected:
   ~VectorRescaleIntensityImageFilter() override {}
 
 private:
-  VectorRescaleIntensityImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VectorRescaleIntensityImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   OutputPixelType m_OutputMinimum;
   OutputPixelType m_OutputMaximum;
diff --git a/Modules/Filtering/ImageNoise/include/otbFrostImageFilter.h b/Modules/Filtering/ImageNoise/include/otbFrostImageFilter.h
index deaa62aed9..f92b1995aa 100644
--- a/Modules/Filtering/ImageNoise/include/otbFrostImageFilter.h
+++ b/Modules/Filtering/ImageNoise/include/otbFrostImageFilter.h
@@ -118,8 +118,8 @@ protected:
                             itk::ThreadIdType threadId) override;
 
 private:
-  FrostImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  FrostImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Radius declaration */
   SizeType m_Radius;
diff --git a/Modules/Filtering/ImageNoise/include/otbGammaMAPImageFilter.h b/Modules/Filtering/ImageNoise/include/otbGammaMAPImageFilter.h
index 7aae5b4199..a8ff3d28f8 100644
--- a/Modules/Filtering/ImageNoise/include/otbGammaMAPImageFilter.h
+++ b/Modules/Filtering/ImageNoise/include/otbGammaMAPImageFilter.h
@@ -105,8 +105,8 @@ protected:
                             itk::ThreadIdType threadId) override;
 
 private:
-  GammaMAPImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  GammaMAPImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Radius of the filter */
   SizeType m_Radius;
diff --git a/Modules/Filtering/ImageNoise/include/otbKuanImageFilter.h b/Modules/Filtering/ImageNoise/include/otbKuanImageFilter.h
index b2701daf37..a5d6cfb738 100644
--- a/Modules/Filtering/ImageNoise/include/otbKuanImageFilter.h
+++ b/Modules/Filtering/ImageNoise/include/otbKuanImageFilter.h
@@ -105,8 +105,8 @@ protected:
                             itk::ThreadIdType threadId) override;
 
 private:
-  KuanImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  KuanImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Radius of the filter */
   SizeType m_Radius;
diff --git a/Modules/Filtering/ImageNoise/include/otbLeeImageFilter.h b/Modules/Filtering/ImageNoise/include/otbLeeImageFilter.h
index a502acb05a..f46d13da44 100644
--- a/Modules/Filtering/ImageNoise/include/otbLeeImageFilter.h
+++ b/Modules/Filtering/ImageNoise/include/otbLeeImageFilter.h
@@ -119,8 +119,8 @@ protected:
                             itk::ThreadIdType threadId) override;
 
 private:
-  LeeImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  LeeImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Radius of the filter */
   SizeType m_Radius;
diff --git a/Modules/Filtering/MathParser/include/otbBandMathImageFilter.h b/Modules/Filtering/MathParser/include/otbBandMathImageFilter.h
index 2ae2485e72..fdba89c8dd 100644
--- a/Modules/Filtering/MathParser/include/otbBandMathImageFilter.h
+++ b/Modules/Filtering/MathParser/include/otbBandMathImageFilter.h
@@ -136,8 +136,8 @@ protected :
   void AfterThreadedGenerateData() override;
 
 private :
-  BandMathImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  BandMathImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   std::string                           m_Expression;
   std::vector<ParserType::Pointer>      m_VParser;
diff --git a/Modules/Filtering/MathParser/include/otbMaskMuParserFilter.h b/Modules/Filtering/MathParser/include/otbMaskMuParserFilter.h
index a6cd78452f..e2c9256319 100644
--- a/Modules/Filtering/MathParser/include/otbMaskMuParserFilter.h
+++ b/Modules/Filtering/MathParser/include/otbMaskMuParserFilter.h
@@ -128,8 +128,8 @@ protected:
   void AfterThreadedGenerateData() override;
 
 private:
-  MaskMuParserFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  MaskMuParserFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   std::vector<FunctorPointer> m_VFunctor;
   std::string m_Expression;
diff --git a/Modules/Filtering/MathParser/include/otbMaskMuParserFunctor.h b/Modules/Filtering/MathParser/include/otbMaskMuParserFunctor.h
index e9ddd48734..7a3d09a24d 100644
--- a/Modules/Filtering/MathParser/include/otbMaskMuParserFunctor.h
+++ b/Modules/Filtering/MathParser/include/otbMaskMuParserFunctor.h
@@ -102,8 +102,8 @@ protected:
 
 private:
 
-  MaskMuParserFunctor(const Self &); //purposely not implemented
-  void operator =(const Self &); //purposely not implemented
+  MaskMuParserFunctor(const Self &) = delete;
+  void operator =(const Self &) = delete;
 
   std::string m_Expression;
   ParserType::Pointer m_Parser;
diff --git a/Modules/Filtering/MathParser/include/otbOBIAMuParserFunctor.h b/Modules/Filtering/MathParser/include/otbOBIAMuParserFunctor.h
index 3a434ac76b..c299255021 100644
--- a/Modules/Filtering/MathParser/include/otbOBIAMuParserFunctor.h
+++ b/Modules/Filtering/MathParser/include/otbOBIAMuParserFunctor.h
@@ -210,8 +210,8 @@ protected:
 
 private:
 
-  OBIAMuParserFunctor(const Self &); //purposely not implemented
-  void operator =(const Self &); //purposely not implemented
+  OBIAMuParserFunctor(const Self &) = delete;
+  void operator =(const Self &) = delete;
 
   std::string m_Expression;
   ParserType::Pointer m_Parser;
diff --git a/Modules/Filtering/MathParser/include/otbParser.h b/Modules/Filtering/MathParser/include/otbParser.h
index 053c1b4566..5d3016f532 100644
--- a/Modules/Filtering/MathParser/include/otbParser.h
+++ b/Modules/Filtering/MathParser/include/otbParser.h
@@ -94,8 +94,8 @@ protected:
 
 
 private:
-  Parser(const Self &);             //purposely not implemented
-  void operator =(const Self &);    //purposely not implemented
+  Parser(const Self &) = delete;
+  void operator =(const Self &) = delete;
 
   typedef itk::SmartPointer<ParserImpl> ParserImplPtr;
   ParserImplPtr m_InternalParser;
diff --git a/Modules/Filtering/MathParser/include/otbParserConditionDataNodeFeatureFunction.h b/Modules/Filtering/MathParser/include/otbParserConditionDataNodeFeatureFunction.h
index 5212da806d..19d01c5b66 100644
--- a/Modules/Filtering/MathParser/include/otbParserConditionDataNodeFeatureFunction.h
+++ b/Modules/Filtering/MathParser/include/otbParserConditionDataNodeFeatureFunction.h
@@ -110,8 +110,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ParserConditionDataNodeFeatureFunction(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  ParserConditionDataNodeFeatureFunction(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   /** ParserCondition Functor */
   ParserConditionFunctorPointer  m_ParserConditionFunctor;
diff --git a/Modules/Filtering/MathParser/src/otbParser.cxx b/Modules/Filtering/MathParser/src/otbParser.cxx
index ac57dd9a85..685f9a5aff 100644
--- a/Modules/Filtering/MathParser/src/otbParser.cxx
+++ b/Modules/Filtering/MathParser/src/otbParser.cxx
@@ -195,8 +195,8 @@ protected:
 
 
 private:
-  ParserImpl(const Self &);             //purposely not implemented
-  void operator =(const Self &);    //purposely not implemented
+  ParserImpl(const Self &) = delete;
+  void operator =(const Self &) = delete;
 
   mu::Parser m_MuParser;
 
diff --git a/Modules/Filtering/MathParserX/include/otbBandMathXImageFilter.h b/Modules/Filtering/MathParserX/include/otbBandMathXImageFilter.h
index b491cef10f..a0ff07fbc8 100644
--- a/Modules/Filtering/MathParserX/include/otbBandMathXImageFilter.h
+++ b/Modules/Filtering/MathParserX/include/otbBandMathXImageFilter.h
@@ -157,8 +157,8 @@ private :
   } adhocStruct;
 
 
-  BandMathXImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  BandMathXImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   void AddVariable(adhocStruct&);
   void CheckImageDimensions();
diff --git a/Modules/Filtering/MathParserX/include/otbParserX.h b/Modules/Filtering/MathParserX/include/otbParserX.h
index d0eab3a05e..afa5ba016a 100644
--- a/Modules/Filtering/MathParserX/include/otbParserX.h
+++ b/Modules/Filtering/MathParserX/include/otbParserX.h
@@ -112,8 +112,8 @@ protected:
 
 
 private:
-  ParserX(const Self &);             //purposely not implemented
-  void operator =(const Self &);    //purposely not implemented
+  ParserX(const Self &) = delete;
+  void operator =(const Self &) = delete;
 
   typedef itk::SmartPointer<ParserXImpl> ParserXImplPtr;
   ParserXImplPtr m_InternalParserX;
diff --git a/Modules/Filtering/MathParserX/src/otbParserX.cxx b/Modules/Filtering/MathParserX/src/otbParserX.cxx
index c7b0be5625..e96867e962 100644
--- a/Modules/Filtering/MathParserX/src/otbParserX.cxx
+++ b/Modules/Filtering/MathParserX/src/otbParserX.cxx
@@ -261,8 +261,8 @@ protected:
 
 
 private:
-  ParserXImpl(const Self &);             //purposely not implemented
-  void operator =(const Self &);    //purposely not implemented
+  ParserXImpl(const Self &) = delete;
+  void operator =(const Self &) = delete;
 
   mup::ParserX m_MuParserX;
 
diff --git a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidMRToMSConverter.h b/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidMRToMSConverter.h
index 7b49a7fd3e..6aa85ba70b 100644
--- a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidMRToMSConverter.h
+++ b/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidMRToMSConverter.h
@@ -160,8 +160,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  MRToMSConverter(const Self &); // purposely not implemented
-  void operator =(const Self&); // purposely not implemented
+  MRToMSConverter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 } // End namespace MorphologicalPyramid
 } // End namespace otb
diff --git a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidResampler.h b/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidResampler.h
index 732149b211..f28d291f72 100644
--- a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidResampler.h
+++ b/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidResampler.h
@@ -89,8 +89,8 @@ protected:
   /** PrintSelf method */
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 private:
-  Resampler(const Self &); // purposely not implemented
-  void operator =(const Self&); // purposely not implemented
+  Resampler(const Self &) = delete;
+  void operator =(const Self&) = delete;
   /// Output image size
   SizeType m_Size;
 };
diff --git a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidSegmenter.h b/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidSegmenter.h
index 47a9929ff7..5fe12ac1f5 100644
--- a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidSegmenter.h
+++ b/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidSegmenter.h
@@ -136,8 +136,8 @@ protected:
   void EnlargeOutputRequestedRegion(void);
 
 private:
-  Segmenter(const Self &); // purposely not implemented
-  void operator =(const Self&); // purposely not implemented
+  Segmenter(const Self &) = delete;
+  void operator =(const Self&) = delete;
   /** Minimum size for the segmented object */
   unsigned long m_MinimumObjectSize;
   /** Quantile for seeds determination */
diff --git a/Modules/Filtering/Path/include/otbCompacityPathFunction.h b/Modules/Filtering/Path/include/otbCompacityPathFunction.h
index b668d970e3..ce29df46dc 100644
--- a/Modules/Filtering/Path/include/otbCompacityPathFunction.h
+++ b/Modules/Filtering/Path/include/otbCompacityPathFunction.h
@@ -79,8 +79,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  CompacityPathFunction(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  CompacityPathFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/Path/include/otbDrawPathFilter.h b/Modules/Filtering/Path/include/otbDrawPathFilter.h
index 1fda8044e1..567da4af39 100644
--- a/Modules/Filtering/Path/include/otbDrawPathFilter.h
+++ b/Modules/Filtering/Path/include/otbDrawPathFilter.h
@@ -96,8 +96,8 @@ protected:
   void GenerateData() override;
 
 private:
-  DrawPathFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  DrawPathFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   OutputImagePixelType m_Value;
 };
diff --git a/Modules/Filtering/Path/include/otbDrawPathListFilter.h b/Modules/Filtering/Path/include/otbDrawPathListFilter.h
index 9c9de8abee..5851f388b8 100644
--- a/Modules/Filtering/Path/include/otbDrawPathListFilter.h
+++ b/Modules/Filtering/Path/include/otbDrawPathListFilter.h
@@ -118,8 +118,8 @@ protected:
   void GenerateData() override;
 
 private:
-  DrawPathListFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  DrawPathListFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Default value to draw */
   OutputImagePixelType m_PathValue;
diff --git a/Modules/Filtering/Path/include/otbImageFittingPolygonListFilter.h b/Modules/Filtering/Path/include/otbImageFittingPolygonListFilter.h
index ac5d3b89b3..bc0f8c7306 100644
--- a/Modules/Filtering/Path/include/otbImageFittingPolygonListFilter.h
+++ b/Modules/Filtering/Path/include/otbImageFittingPolygonListFilter.h
@@ -109,8 +109,8 @@ protected:
   unsigned int m_NumberOfIterations;
 
 private:
-  ImageFittingPolygonListFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImageFittingPolygonListFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 } // End namespace otb
diff --git a/Modules/Filtering/Path/include/otbImageToEdgePathFilter.h b/Modules/Filtering/Path/include/otbImageToEdgePathFilter.h
index f976eb805f..2a69f0d20c 100644
--- a/Modules/Filtering/Path/include/otbImageToEdgePathFilter.h
+++ b/Modules/Filtering/Path/include/otbImageToEdgePathFilter.h
@@ -92,8 +92,8 @@ protected:
   void GenerateData() override;
 
 private:
-  ImageToEdgePathFilter(const Self &); // purposely not implemented
-  void operator =(const Self&); // purposely not implemented
+  ImageToEdgePathFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   PixelType m_ForegroundValue;
 };
diff --git a/Modules/Filtering/Path/include/otbImageToPathListFilter.h b/Modules/Filtering/Path/include/otbImageToPathListFilter.h
index 146d7d4d6d..b42a23f6fc 100644
--- a/Modules/Filtering/Path/include/otbImageToPathListFilter.h
+++ b/Modules/Filtering/Path/include/otbImageToPathListFilter.h
@@ -81,8 +81,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ImageToPathListFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImageToPathListFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // end namespace otb
diff --git a/Modules/Filtering/Path/include/otbOrientationPathFunction.h b/Modules/Filtering/Path/include/otbOrientationPathFunction.h
index ca1b010e23..c83caf6441 100644
--- a/Modules/Filtering/Path/include/otbOrientationPathFunction.h
+++ b/Modules/Filtering/Path/include/otbOrientationPathFunction.h
@@ -75,8 +75,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  OrientationPathFunction(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  OrientationPathFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/Path/include/otbPathFunction.h b/Modules/Filtering/Path/include/otbPathFunction.h
index e260d86b32..2d9adf7b23 100644
--- a/Modules/Filtering/Path/include/otbPathFunction.h
+++ b/Modules/Filtering/Path/include/otbPathFunction.h
@@ -86,8 +86,8 @@ protected:
   InputPathConstPointer m_Path;
 
 private:
-  PathFunction(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PathFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/Path/include/otbPathListSource.h b/Modules/Filtering/Path/include/otbPathListSource.h
index 0181cc7276..df9f28e9cb 100644
--- a/Modules/Filtering/Path/include/otbPathListSource.h
+++ b/Modules/Filtering/Path/include/otbPathListSource.h
@@ -176,8 +176,8 @@ protected:
 //   void PrintSelf(std::ostream& os, itk::Indent indent) const;
 
 private:
-  PathListSource(const Self &); //purposely not implemented
-  void operator =(const Self&);   //purposely not implemented
+  PathListSource(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // end namespace otb
diff --git a/Modules/Filtering/Path/include/otbPathListToPathListFilter.h b/Modules/Filtering/Path/include/otbPathListToPathListFilter.h
index 88fcb21c63..b7314a79d5 100644
--- a/Modules/Filtering/Path/include/otbPathListToPathListFilter.h
+++ b/Modules/Filtering/Path/include/otbPathListToPathListFilter.h
@@ -66,8 +66,8 @@ protected:
   ~PathListToPathListFilter() override {}
 
 private:
-  PathListToPathListFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PathListToPathListFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 } // End namespace otb
 
diff --git a/Modules/Filtering/Path/include/otbRegionImageToRectangularPathListFilter.h b/Modules/Filtering/Path/include/otbRegionImageToRectangularPathListFilter.h
index 21176cb50e..df0444b81e 100644
--- a/Modules/Filtering/Path/include/otbRegionImageToRectangularPathListFilter.h
+++ b/Modules/Filtering/Path/include/otbRegionImageToRectangularPathListFilter.h
@@ -118,8 +118,8 @@ protected:
   typename MarkerImageType::Pointer markerImage;
 
 private:
-  RegionImageToRectangularPathListFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  RegionImageToRectangularPathListFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // end namespace otb
diff --git a/Modules/Filtering/Path/include/otbVectorizationPathListFilter.h b/Modules/Filtering/Path/include/otbVectorizationPathListFilter.h
index 3e0b32a71b..1a9c4f650a 100644
--- a/Modules/Filtering/Path/include/otbVectorizationPathListFilter.h
+++ b/Modules/Filtering/Path/include/otbVectorizationPathListFilter.h
@@ -137,8 +137,8 @@ protected:
    */
   OffsetVectorType GetThreeNeighborOffsetFromDirection(double direction, unsigned int flagReverse);
 private:
-  VectorizationPathListFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VectorizationPathListFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
   /** Amplitude threshold to start following a path */
   InputPixelType m_AmplitudeThreshold;
 };
diff --git a/Modules/Filtering/Polarimetry/include/otbMuellerToPolarisationDegreeAndPowerImageFilter.h b/Modules/Filtering/Polarimetry/include/otbMuellerToPolarisationDegreeAndPowerImageFilter.h
index fcec423adc..185125b7a7 100644
--- a/Modules/Filtering/Polarimetry/include/otbMuellerToPolarisationDegreeAndPowerImageFilter.h
+++ b/Modules/Filtering/Polarimetry/include/otbMuellerToPolarisationDegreeAndPowerImageFilter.h
@@ -233,8 +233,8 @@ protected:
   ~MuellerToPolarisationDegreeAndPowerImageFilter() override {}
 
 private:
-  MuellerToPolarisationDegreeAndPowerImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&);                                 //purposely not implemented
+  MuellerToPolarisationDegreeAndPowerImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 };
 
 } // end namespace otb
diff --git a/Modules/Filtering/Polarimetry/include/otbMuellerToReciprocalCovarianceImageFilter.h b/Modules/Filtering/Polarimetry/include/otbMuellerToReciprocalCovarianceImageFilter.h
index 77a13cbb04..7da6917c69 100644
--- a/Modules/Filtering/Polarimetry/include/otbMuellerToReciprocalCovarianceImageFilter.h
+++ b/Modules/Filtering/Polarimetry/include/otbMuellerToReciprocalCovarianceImageFilter.h
@@ -161,8 +161,8 @@ protected:
   ~MuellerToReciprocalCovarianceImageFilter() override {}
 
 private:
-  MuellerToReciprocalCovarianceImageFilter(const Self&); // purposely not implemented
-  void operator=(const Self&);          // purposely not implemented
+  MuellerToReciprocalCovarianceImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 };
 
 } // end namespace otb
diff --git a/Modules/Filtering/Polarimetry/include/otbMultiChannelsPolarimetricSynthesisFilter.h b/Modules/Filtering/Polarimetry/include/otbMultiChannelsPolarimetricSynthesisFilter.h
index 7c3ab103d0..1cdc209f18 100644
--- a/Modules/Filtering/Polarimetry/include/otbMultiChannelsPolarimetricSynthesisFilter.h
+++ b/Modules/Filtering/Polarimetry/include/otbMultiChannelsPolarimetricSynthesisFilter.h
@@ -193,7 +193,7 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  MultiChannelsPolarimetricSynthesisFilter(const Self &); //purposely not implemented
+  MultiChannelsPolarimetricSynthesisFilter(const Self &) = delete;
 
   /** Psi Incident */
   double m_PsiI;
diff --git a/Modules/Filtering/Polarimetry/include/otbPolarimetricData.h b/Modules/Filtering/Polarimetry/include/otbPolarimetricData.h
index 78a3d1c1cc..59b1640d3c 100644
--- a/Modules/Filtering/Polarimetry/include/otbPolarimetricData.h
+++ b/Modules/Filtering/Polarimetry/include/otbPolarimetricData.h
@@ -84,8 +84,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  PolarimetricData(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PolarimetricData(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Architecture Type */
   ArchitectureType m_ArchitectureType;
diff --git a/Modules/Filtering/Polarimetry/include/otbReciprocalBarnesDecompImageFilter.h b/Modules/Filtering/Polarimetry/include/otbReciprocalBarnesDecompImageFilter.h
index 54dd975da4..2e584c7203 100644
--- a/Modules/Filtering/Polarimetry/include/otbReciprocalBarnesDecompImageFilter.h
+++ b/Modules/Filtering/Polarimetry/include/otbReciprocalBarnesDecompImageFilter.h
@@ -154,8 +154,8 @@ protected:
   ~ReciprocalBarnesDecompImageFilter() override {}
 
 private:
-  ReciprocalBarnesDecompImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&);            //purposely not implemented
+  ReciprocalBarnesDecompImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/Polarimetry/include/otbReciprocalCoherencyToReciprocalMuellerImageFilter.h b/Modules/Filtering/Polarimetry/include/otbReciprocalCoherencyToReciprocalMuellerImageFilter.h
index 71e7d6917d..5bf1a145c4 100644
--- a/Modules/Filtering/Polarimetry/include/otbReciprocalCoherencyToReciprocalMuellerImageFilter.h
+++ b/Modules/Filtering/Polarimetry/include/otbReciprocalCoherencyToReciprocalMuellerImageFilter.h
@@ -167,8 +167,8 @@ protected:
 
 
 private:
-  ReciprocalCoherencyToReciprocalMuellerImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&);            //purposely not implemented
+  ReciprocalCoherencyToReciprocalMuellerImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/Polarimetry/include/otbReciprocalCovarianceToCoherencyDegreeImageFilter.h b/Modules/Filtering/Polarimetry/include/otbReciprocalCovarianceToCoherencyDegreeImageFilter.h
index 8d346c7149..c49ab56925 100644
--- a/Modules/Filtering/Polarimetry/include/otbReciprocalCovarianceToCoherencyDegreeImageFilter.h
+++ b/Modules/Filtering/Polarimetry/include/otbReciprocalCovarianceToCoherencyDegreeImageFilter.h
@@ -150,8 +150,8 @@ protected:
   ~ReciprocalCovarianceToCoherencyDegreeImageFilter() override {}
 
 private:
-  ReciprocalCovarianceToCoherencyDegreeImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&);                  //purposely not implemented
+  ReciprocalCovarianceToCoherencyDegreeImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
 
 };
diff --git a/Modules/Filtering/Polarimetry/include/otbReciprocalCovarianceToReciprocalCoherencyImageFilter.h b/Modules/Filtering/Polarimetry/include/otbReciprocalCovarianceToReciprocalCoherencyImageFilter.h
index 761f4a0f74..9393cdd4d8 100644
--- a/Modules/Filtering/Polarimetry/include/otbReciprocalCovarianceToReciprocalCoherencyImageFilter.h
+++ b/Modules/Filtering/Polarimetry/include/otbReciprocalCovarianceToReciprocalCoherencyImageFilter.h
@@ -141,8 +141,8 @@ protected:
   ~ReciprocalCovarianceToReciprocalCoherencyImageFilter() override {}
 
 private:
-  ReciprocalCovarianceToReciprocalCoherencyImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&);            //purposely not implemented
+  ReciprocalCovarianceToReciprocalCoherencyImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
 
 };
diff --git a/Modules/Filtering/Polarimetry/include/otbReciprocalHAlphaImageFilter.h b/Modules/Filtering/Polarimetry/include/otbReciprocalHAlphaImageFilter.h
index 2e95fff07c..bc62ab4061 100644
--- a/Modules/Filtering/Polarimetry/include/otbReciprocalHAlphaImageFilter.h
+++ b/Modules/Filtering/Polarimetry/include/otbReciprocalHAlphaImageFilter.h
@@ -223,8 +223,8 @@ protected:
   ~ReciprocalHAlphaImageFilter() override {}
 
 private:
-  ReciprocalHAlphaImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&);            //purposely not implemented
+  ReciprocalHAlphaImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/Polarimetry/include/otbReciprocalHuynenDecompImageFilter.h b/Modules/Filtering/Polarimetry/include/otbReciprocalHuynenDecompImageFilter.h
index 2da4369697..9522a3dc54 100644
--- a/Modules/Filtering/Polarimetry/include/otbReciprocalHuynenDecompImageFilter.h
+++ b/Modules/Filtering/Polarimetry/include/otbReciprocalHuynenDecompImageFilter.h
@@ -125,8 +125,8 @@ protected:
   ~ReciprocalHuynenDecompImageFilter() override {}
 
 private:
-  ReciprocalHuynenDecompImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&);            //purposely not implemented
+  ReciprocalHuynenDecompImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/Polarimetry/include/otbReciprocalLinearCovarianceToReciprocalCircularCovarianceImageFilter.h b/Modules/Filtering/Polarimetry/include/otbReciprocalLinearCovarianceToReciprocalCircularCovarianceImageFilter.h
index 900eeb4947..e3a60859e7 100644
--- a/Modules/Filtering/Polarimetry/include/otbReciprocalLinearCovarianceToReciprocalCircularCovarianceImageFilter.h
+++ b/Modules/Filtering/Polarimetry/include/otbReciprocalLinearCovarianceToReciprocalCircularCovarianceImageFilter.h
@@ -146,8 +146,8 @@ protected:
   ~ReciprocalLinearCovarianceToReciprocalCircularCovarianceImageFilter() override {}
 
 private:
-  ReciprocalLinearCovarianceToReciprocalCircularCovarianceImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&);                          //purposely not implemented
+  ReciprocalLinearCovarianceToReciprocalCircularCovarianceImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/Polarimetry/include/otbReciprocalPauliDecompImageFilter.h b/Modules/Filtering/Polarimetry/include/otbReciprocalPauliDecompImageFilter.h
index 319c19be77..6fdd423457 100644
--- a/Modules/Filtering/Polarimetry/include/otbReciprocalPauliDecompImageFilter.h
+++ b/Modules/Filtering/Polarimetry/include/otbReciprocalPauliDecompImageFilter.h
@@ -116,8 +116,8 @@ protected:
   ~ReciprocalPauliDecompImageFilter() override {}
 
 private:
-  ReciprocalPauliDecompImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&);            //purposely not implemented
+  ReciprocalPauliDecompImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/Polarimetry/include/otbSinclairImageFilter.h b/Modules/Filtering/Polarimetry/include/otbSinclairImageFilter.h
index bb9c04c06f..3747ec0617 100644
--- a/Modules/Filtering/Polarimetry/include/otbSinclairImageFilter.h
+++ b/Modules/Filtering/Polarimetry/include/otbSinclairImageFilter.h
@@ -117,8 +117,8 @@ protected:
 
 private:
 
-  SinclairImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  SinclairImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/Polarimetry/include/otbSinclairReciprocalImageFilter.h b/Modules/Filtering/Polarimetry/include/otbSinclairReciprocalImageFilter.h
index 2b9d4dc321..bd914e2327 100644
--- a/Modules/Filtering/Polarimetry/include/otbSinclairReciprocalImageFilter.h
+++ b/Modules/Filtering/Polarimetry/include/otbSinclairReciprocalImageFilter.h
@@ -116,8 +116,8 @@ protected:
 
 private:
 
-  SinclairReciprocalImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  SinclairReciprocalImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/Projection/include/otbEckert4MapProjection.h b/Modules/Filtering/Projection/include/otbEckert4MapProjection.h
index d02d5a6888..06d7ec3966 100644
--- a/Modules/Filtering/Projection/include/otbEckert4MapProjection.h
+++ b/Modules/Filtering/Projection/include/otbEckert4MapProjection.h
@@ -64,8 +64,8 @@ protected:
   ~Eckert4MapProjection() override;
 
 private:
-  Eckert4MapProjection(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  Eckert4MapProjection(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/Projection/include/otbGCPsToRPCSensorModelImageFilter.h b/Modules/Filtering/Projection/include/otbGCPsToRPCSensorModelImageFilter.h
index 06436338f0..5a8a8f1995 100644
--- a/Modules/Filtering/Projection/include/otbGCPsToRPCSensorModelImageFilter.h
+++ b/Modules/Filtering/Projection/include/otbGCPsToRPCSensorModelImageFilter.h
@@ -183,8 +183,8 @@ protected:
   void Modified() const override;
 
 private:
-  GCPsToRPCSensorModelImageFilter (const Self &);   // purposely not implemented
-  void operator =(const Self&);    // purposely not implemented
+  GCPsToRPCSensorModelImageFilter (const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Transform all GCPs and compute the error and mean error */
   void ComputeErrors();
diff --git a/Modules/Filtering/Projection/include/otbGenericRSResampleImageFilter.h b/Modules/Filtering/Projection/include/otbGenericRSResampleImageFilter.h
index 0f93d53e91..bce96de255 100644
--- a/Modules/Filtering/Projection/include/otbGenericRSResampleImageFilter.h
+++ b/Modules/Filtering/Projection/include/otbGenericRSResampleImageFilter.h
@@ -284,8 +284,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  GenericRSResampleImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  GenericRSResampleImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   // Method to estimate the input & output rpc model
   void EstimateOutputRpcModel();
diff --git a/Modules/Filtering/Projection/include/otbGeographicalDistance.h b/Modules/Filtering/Projection/include/otbGeographicalDistance.h
index 225aa44e4a..2b387814a2 100644
--- a/Modules/Filtering/Projection/include/otbGeographicalDistance.h
+++ b/Modules/Filtering/Projection/include/otbGeographicalDistance.h
@@ -90,8 +90,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  GeographicalDistance(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  GeographicalDistance(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Earth radius */
   double m_EarthRadius;
diff --git a/Modules/Filtering/Projection/include/otbGroundSpacingImageFunction.h b/Modules/Filtering/Projection/include/otbGroundSpacingImageFunction.h
index 925069f259..220b9a0c38 100644
--- a/Modules/Filtering/Projection/include/otbGroundSpacingImageFunction.h
+++ b/Modules/Filtering/Projection/include/otbGroundSpacingImageFunction.h
@@ -107,8 +107,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  GroundSpacingImageFunction(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  GroundSpacingImageFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   ValueType              m_R;
   ValueType              m_Deg2radCoef;
diff --git a/Modules/Filtering/Projection/include/otbImageToEnvelopeVectorDataFilter.h b/Modules/Filtering/Projection/include/otbImageToEnvelopeVectorDataFilter.h
index 827b852e8f..bf37333abd 100644
--- a/Modules/Filtering/Projection/include/otbImageToEnvelopeVectorDataFilter.h
+++ b/Modules/Filtering/Projection/include/otbImageToEnvelopeVectorDataFilter.h
@@ -107,8 +107,8 @@ protected:
   void InstantiateTransform();
 
 private:
-  ImageToEnvelopeVectorDataFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImageToEnvelopeVectorDataFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   InternalTransformPointerType m_Transform;
   std::string                  m_OutputProjectionRef;
diff --git a/Modules/Filtering/Projection/include/otbImportGeoInformationImageFilter.h b/Modules/Filtering/Projection/include/otbImportGeoInformationImageFilter.h
index f22b21de3b..99200364b8 100644
--- a/Modules/Filtering/Projection/include/otbImportGeoInformationImageFilter.h
+++ b/Modules/Filtering/Projection/include/otbImportGeoInformationImageFilter.h
@@ -97,8 +97,8 @@ protected:
   void VerifyInputInformation() override {}
 
 private:
-  ImportGeoInformationImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImportGeoInformationImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 } // End namespace otb
 #ifndef OTB_MANUAL_INSTANTIATION
diff --git a/Modules/Filtering/Projection/include/otbLambert2EtenduProjection.h b/Modules/Filtering/Projection/include/otbLambert2EtenduProjection.h
index 76dfc2c415..4e59e84db4 100644
--- a/Modules/Filtering/Projection/include/otbLambert2EtenduProjection.h
+++ b/Modules/Filtering/Projection/include/otbLambert2EtenduProjection.h
@@ -63,8 +63,8 @@ protected:
   ~Lambert2EtenduProjection() override {}
 
 private:
-  Lambert2EtenduProjection(const Self &); //purposely not implemented
-  void operator =(const Self&);           //purposely not implemented
+  Lambert2EtenduProjection(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // namespace otb
diff --git a/Modules/Filtering/Projection/include/otbLambert3CartoSudProjection.h b/Modules/Filtering/Projection/include/otbLambert3CartoSudProjection.h
index 07691cda1c..81c1c2210e 100644
--- a/Modules/Filtering/Projection/include/otbLambert3CartoSudProjection.h
+++ b/Modules/Filtering/Projection/include/otbLambert3CartoSudProjection.h
@@ -67,8 +67,8 @@ protected:
   virtual ~Lambert3CartoSudProjection() {}
 
 private:
-  Lambert3CartoSudProjection(const Self &); //purposely not implemented
-  void operator =(const Self&);                       //purposely not implemented
+  Lambert3CartoSudProjection(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // namespace otb
diff --git a/Modules/Filtering/Projection/include/otbLambert93Projection.h b/Modules/Filtering/Projection/include/otbLambert93Projection.h
index 377d61acc6..fec9625a96 100644
--- a/Modules/Filtering/Projection/include/otbLambert93Projection.h
+++ b/Modules/Filtering/Projection/include/otbLambert93Projection.h
@@ -63,8 +63,8 @@ protected:
   ~Lambert93Projection() override {}
 
 private:
-  Lambert93Projection(const Self &); //purposely not implemented
-  void operator =(const Self&);      //purposely not implemented
+  Lambert93Projection(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // namespace otb
diff --git a/Modules/Filtering/Projection/include/otbLambertConformalConicMapProjection.h b/Modules/Filtering/Projection/include/otbLambertConformalConicMapProjection.h
index 53bf34e8ec..526b194ab0 100644
--- a/Modules/Filtering/Projection/include/otbLambertConformalConicMapProjection.h
+++ b/Modules/Filtering/Projection/include/otbLambertConformalConicMapProjection.h
@@ -67,8 +67,8 @@ protected:
   ~LambertConformalConicMapProjection() override {};
 
 private:
-  LambertConformalConicMapProjection(const Self &); //purposely not implemented
-  void operator =(const Self&);                       //purposely not implemented
+  LambertConformalConicMapProjection(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // namespace otb
diff --git a/Modules/Filtering/Projection/include/otbLeastSquareAffineTransformEstimator.h b/Modules/Filtering/Projection/include/otbLeastSquareAffineTransformEstimator.h
index a3d1f273c4..dc5fe37c44 100644
--- a/Modules/Filtering/Projection/include/otbLeastSquareAffineTransformEstimator.h
+++ b/Modules/Filtering/Projection/include/otbLeastSquareAffineTransformEstimator.h
@@ -144,8 +144,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  LeastSquareAffineTransformEstimator (const Self &);   // purposely not implemented
-  void operator =(const Self&);    // purposely not implemented
+  LeastSquareAffineTransformEstimator (const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Container of GCPs */
   TiePointsContainerType m_TiePointsContainer;
diff --git a/Modules/Filtering/Projection/include/otbMollweidMapProjection.h b/Modules/Filtering/Projection/include/otbMollweidMapProjection.h
index 27c7f71417..b063d0fb3b 100644
--- a/Modules/Filtering/Projection/include/otbMollweidMapProjection.h
+++ b/Modules/Filtering/Projection/include/otbMollweidMapProjection.h
@@ -62,8 +62,8 @@ protected:
   ~MollweidMapProjection() override;
 
 private:
-  MollweidMapProjection(const Self &); //purposely not implemented
-  void operator =(const Self&);          //purposely not implemented
+  MollweidMapProjection(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/Projection/include/otbOrthoRectificationFilter.h b/Modules/Filtering/Projection/include/otbOrthoRectificationFilter.h
index 17c6ef257b..1226e36c85 100644
--- a/Modules/Filtering/Projection/include/otbOrthoRectificationFilter.h
+++ b/Modules/Filtering/Projection/include/otbOrthoRectificationFilter.h
@@ -100,8 +100,8 @@ protected:
   void GenerateOutputInformation(void) override;
 
 private:
-  OrthoRectificationFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  OrthoRectificationFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Map Projection used to transform cartographic coordinates in geographic  coordinates */
   MapProjectionPointerType m_MapProjection;
diff --git a/Modules/Filtering/Projection/include/otbPhysicalToRPCSensorModelImageFilter.h b/Modules/Filtering/Projection/include/otbPhysicalToRPCSensorModelImageFilter.h
index 0fb3a72973..d6576c37bb 100644
--- a/Modules/Filtering/Projection/include/otbPhysicalToRPCSensorModelImageFilter.h
+++ b/Modules/Filtering/Projection/include/otbPhysicalToRPCSensorModelImageFilter.h
@@ -125,8 +125,8 @@ protected:
   void GenerateOutputInformation() override;
 
 private:
-  PhysicalToRPCSensorModelImageFilter(const Self &);   // purposely not implemented
-  void operator =(const Self&);    // purposely not implemented
+  PhysicalToRPCSensorModelImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** The rpc model estimator */
   GCPsToSensorModelPointerType       m_GCPsToSensorModelFilter;
diff --git a/Modules/Filtering/Projection/include/otbPleiadesPToXSAffineTransformCalculator.h b/Modules/Filtering/Projection/include/otbPleiadesPToXSAffineTransformCalculator.h
index 5359f30b2f..6ea197e067 100644
--- a/Modules/Filtering/Projection/include/otbPleiadesPToXSAffineTransformCalculator.h
+++ b/Modules/Filtering/Projection/include/otbPleiadesPToXSAffineTransformCalculator.h
@@ -98,9 +98,9 @@ public:
   static TransformType::Pointer Compute(const itk::ImageBase<2> * panchromaticImage, const itk::ImageBase<2> * xsImage);
                   
 private:
-  PleiadesPToXSAffineTransformCalculator(); // purposely not implemented
-  PleiadesPToXSAffineTransformCalculator(const Self &); // purposely not implemented
-  void operator =(const Self&); // purposely not implemented
+  PleiadesPToXSAffineTransformCalculator() = delete;
+  PleiadesPToXSAffineTransformCalculator(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 
diff --git a/Modules/Filtering/Projection/include/otbProjectiveProjectionImageFilter.h b/Modules/Filtering/Projection/include/otbProjectiveProjectionImageFilter.h
index 22b92e4a05..ad7659d922 100644
--- a/Modules/Filtering/Projection/include/otbProjectiveProjectionImageFilter.h
+++ b/Modules/Filtering/Projection/include/otbProjectiveProjectionImageFilter.h
@@ -168,9 +168,9 @@ protected:
   }
 
 private:
-  ProjectiveProjectionImageFilter(const Self &); //purposely not implemented
+  ProjectiveProjectionImageFilter(const Self &) = delete;
 
-  void operator =(const Self&); //purposely not implemented
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/Projection/include/otbRationalTransform.h b/Modules/Filtering/Projection/include/otbRationalTransform.h
index 5cc26f3bb6..4e17401946 100644
--- a/Modules/Filtering/Projection/include/otbRationalTransform.h
+++ b/Modules/Filtering/Projection/include/otbRationalTransform.h
@@ -198,8 +198,8 @@ protected:
   }
 
 private:
-  RationalTransform(const Self &);    //purposely not implemented
-  void operator =(const Self&);    //purposely not implemented
+  RationalTransform(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   // Degree of numerator
   unsigned int m_NumeratorDegree;
diff --git a/Modules/Filtering/Projection/include/otbSVY21MapProjection.h b/Modules/Filtering/Projection/include/otbSVY21MapProjection.h
index 415f9f9e4f..46acadb67d 100644
--- a/Modules/Filtering/Projection/include/otbSVY21MapProjection.h
+++ b/Modules/Filtering/Projection/include/otbSVY21MapProjection.h
@@ -65,8 +65,8 @@ protected:
   ~SVY21MapProjection() override {}
 
 private:
-  SVY21MapProjection(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  SVY21MapProjection(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // namespace otb
diff --git a/Modules/Filtering/Projection/include/otbSinusoidalMapProjection.h b/Modules/Filtering/Projection/include/otbSinusoidalMapProjection.h
index e8b7a190d3..8092cf1d36 100644
--- a/Modules/Filtering/Projection/include/otbSinusoidalMapProjection.h
+++ b/Modules/Filtering/Projection/include/otbSinusoidalMapProjection.h
@@ -65,8 +65,8 @@ protected:
   ~SinusoidalMapProjection() override;
 
 private:
-  SinusoidalMapProjection(const Self &); //purposely not implemented
-  void operator =(const Self&);            //purposely not implemented
+  SinusoidalMapProjection(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/Projection/include/otbTileMapTransform.h b/Modules/Filtering/Projection/include/otbTileMapTransform.h
index c6d2125ba1..0d4e8cc560 100644
--- a/Modules/Filtering/Projection/include/otbTileMapTransform.h
+++ b/Modules/Filtering/Projection/include/otbTileMapTransform.h
@@ -88,8 +88,8 @@ protected:
   ~TileMapTransform() override;
 
 private:
-  TileMapTransform(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  TileMapTransform(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   int m_Depth;
 };
diff --git a/Modules/Filtering/Projection/include/otbTransMercatorMapProjection.h b/Modules/Filtering/Projection/include/otbTransMercatorMapProjection.h
index 35a384373a..b5b34be4a3 100644
--- a/Modules/Filtering/Projection/include/otbTransMercatorMapProjection.h
+++ b/Modules/Filtering/Projection/include/otbTransMercatorMapProjection.h
@@ -67,8 +67,8 @@ protected:
   ~TransMercatorMapProjection() override;
 
 private:
-  TransMercatorMapProjection(const Self &); //purposely not implemented
-  void operator =(const Self&);               //purposely not implemented
+  TransMercatorMapProjection(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/Projection/include/otbUtmMapProjection.h b/Modules/Filtering/Projection/include/otbUtmMapProjection.h
index 60992d15b3..c121faeb1f 100644
--- a/Modules/Filtering/Projection/include/otbUtmMapProjection.h
+++ b/Modules/Filtering/Projection/include/otbUtmMapProjection.h
@@ -66,8 +66,8 @@ protected:
   ~UtmMapProjection() override {};
 
 private:
-  UtmMapProjection(const Self &); //purposely not implemented
-  void operator =(const Self&);   //purposely not implemented
+  UtmMapProjection(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // namespace otb
diff --git a/Modules/Filtering/Projection/include/otbVectorDataIntoImageProjectionFilter.h b/Modules/Filtering/Projection/include/otbVectorDataIntoImageProjectionFilter.h
index 34743bb569..c36c1c0911 100644
--- a/Modules/Filtering/Projection/include/otbVectorDataIntoImageProjectionFilter.h
+++ b/Modules/Filtering/Projection/include/otbVectorDataIntoImageProjectionFilter.h
@@ -116,8 +116,8 @@ protected:
   typedef typename VectorDataExtractROIType::RegionType         RemoteSensingRegionType;
 
 private:
-  VectorDataIntoImageProjectionFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VectorDataIntoImageProjectionFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   ImagePointerType m_InputImage;
 
diff --git a/Modules/Filtering/Projection/include/otbVectorDataProjectionFilter.h b/Modules/Filtering/Projection/include/otbVectorDataProjectionFilter.h
index d455ec83d7..40efd1202d 100644
--- a/Modules/Filtering/Projection/include/otbVectorDataProjectionFilter.h
+++ b/Modules/Filtering/Projection/include/otbVectorDataProjectionFilter.h
@@ -188,8 +188,8 @@ protected:
   void GenerateData(void) override;
 
 private:
-  VectorDataProjectionFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VectorDataProjectionFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   InternalTransformPointerType m_Transform;
   std::string                  m_InputProjectionRef;
diff --git a/Modules/Filtering/Projection/include/otbVectorDataTransformFilter.h b/Modules/Filtering/Projection/include/otbVectorDataTransformFilter.h
index 0ba5ce9031..a82bed669a 100644
--- a/Modules/Filtering/Projection/include/otbVectorDataTransformFilter.h
+++ b/Modules/Filtering/Projection/include/otbVectorDataTransformFilter.h
@@ -112,8 +112,8 @@ protected:
   void GenerateData(void) override;
 
 private:
-  VectorDataTransformFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  VectorDataTransformFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   GenericTransformPointerType m_Transform;
 };
diff --git a/Modules/Filtering/Smoothing/include/otbMeanShiftSmoothingImageFilter.h b/Modules/Filtering/Smoothing/include/otbMeanShiftSmoothingImageFilter.h
index 845f7dc00d..6dc0cfe79a 100644
--- a/Modules/Filtering/Smoothing/include/otbMeanShiftSmoothingImageFilter.h
+++ b/Modules/Filtering/Smoothing/include/otbMeanShiftSmoothingImageFilter.h
@@ -617,8 +617,8 @@ protected:
 #endif
 
 private:
-  MeanShiftSmoothingImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  MeanShiftSmoothingImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Range bandwidth */
   RealType m_RangeBandwidth;
diff --git a/Modules/Filtering/Statistics/include/otbConcatenateSampleListFilter.h b/Modules/Filtering/Statistics/include/otbConcatenateSampleListFilter.h
index 4fa8981e15..615ccc13f5 100644
--- a/Modules/Filtering/Statistics/include/otbConcatenateSampleListFilter.h
+++ b/Modules/Filtering/Statistics/include/otbConcatenateSampleListFilter.h
@@ -74,8 +74,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ConcatenateSampleListFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  ConcatenateSampleListFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 }; // end of class ImageToListGenerator
 
 } // end of namespace Statistics
diff --git a/Modules/Filtering/Statistics/include/otbContinuousMinimumMaximumImageCalculator.h b/Modules/Filtering/Statistics/include/otbContinuousMinimumMaximumImageCalculator.h
index d22fcaba45..d452a1318c 100644
--- a/Modules/Filtering/Statistics/include/otbContinuousMinimumMaximumImageCalculator.h
+++ b/Modules/Filtering/Statistics/include/otbContinuousMinimumMaximumImageCalculator.h
@@ -154,8 +154,8 @@ protected:
   bool       m_RegionSetByUser;
 
 private:
-  ContinuousMinimumMaximumImageCalculator(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ContinuousMinimumMaximumImageCalculator(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/Statistics/include/otbGaussianAdditiveNoiseSampleListFilter.h b/Modules/Filtering/Statistics/include/otbGaussianAdditiveNoiseSampleListFilter.h
index 9bc1a1e555..cf6211bd95 100644
--- a/Modules/Filtering/Statistics/include/otbGaussianAdditiveNoiseSampleListFilter.h
+++ b/Modules/Filtering/Statistics/include/otbGaussianAdditiveNoiseSampleListFilter.h
@@ -100,8 +100,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  GaussianAdditiveNoiseSampleListFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  GaussianAdditiveNoiseSampleListFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   // Mean and variance for the white gaussian noise to generate
   double              m_Mean;
diff --git a/Modules/Filtering/Statistics/include/otbListSampleGenerator.h b/Modules/Filtering/Statistics/include/otbListSampleGenerator.h
index 2a074d8748..f2542f3be5 100644
--- a/Modules/Filtering/Statistics/include/otbListSampleGenerator.h
+++ b/Modules/Filtering/Statistics/include/otbListSampleGenerator.h
@@ -164,8 +164,8 @@ protected:
   void GenerateClassStatistics();
 
 private:
-  ListSampleGenerator(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ListSampleGenerator(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   typedef typename VectorDataType::DataNodeType         DataNodeType;
   typedef typename DataNodeType::PolygonType            PolygonType;
diff --git a/Modules/Filtering/Statistics/include/otbListSampleSource.h b/Modules/Filtering/Statistics/include/otbListSampleSource.h
index 88bf53f9c2..8beb507cf5 100644
--- a/Modules/Filtering/Statistics/include/otbListSampleSource.h
+++ b/Modules/Filtering/Statistics/include/otbListSampleSource.h
@@ -81,8 +81,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ListSampleSource(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  ListSampleSource(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
 }; // end of class ListSampleSource
 
diff --git a/Modules/Filtering/Statistics/include/otbListSampleToBalancedListSampleFilter.h b/Modules/Filtering/Statistics/include/otbListSampleToBalancedListSampleFilter.h
index d904e39073..42f9655894 100644
--- a/Modules/Filtering/Statistics/include/otbListSampleToBalancedListSampleFilter.h
+++ b/Modules/Filtering/Statistics/include/otbListSampleToBalancedListSampleFilter.h
@@ -137,8 +137,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ListSampleToBalancedListSampleFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  ListSampleToBalancedListSampleFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   GaussianAdditiveNoisePointerType       m_AddGaussianNoiseFilter;
   std::vector<unsigned int>              m_MultiplicativeCoefficient;
diff --git a/Modules/Filtering/Statistics/include/otbListSampleToListSampleFilter.h b/Modules/Filtering/Statistics/include/otbListSampleToListSampleFilter.h
index 152788ef81..e092656945 100644
--- a/Modules/Filtering/Statistics/include/otbListSampleToListSampleFilter.h
+++ b/Modules/Filtering/Statistics/include/otbListSampleToListSampleFilter.h
@@ -92,8 +92,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ListSampleToListSampleFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  ListSampleToListSampleFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
 }; // end of class ListSampleToListSampleFilter
 
diff --git a/Modules/Filtering/Statistics/include/otbLocalHistogramImageFunction.h b/Modules/Filtering/Statistics/include/otbLocalHistogramImageFunction.h
index 38eec749bc..5348890e2e 100644
--- a/Modules/Filtering/Statistics/include/otbLocalHistogramImageFunction.h
+++ b/Modules/Filtering/Statistics/include/otbLocalHistogramImageFunction.h
@@ -132,8 +132,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  LocalHistogramImageFunction(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  LocalHistogramImageFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   unsigned int     m_NeighborhoodRadius;
   unsigned long    m_NumberOfHistogramBins;
diff --git a/Modules/Filtering/Statistics/include/otbShiftScaleSampleListFilter.h b/Modules/Filtering/Statistics/include/otbShiftScaleSampleListFilter.h
index 00ed571aa8..0770189120 100644
--- a/Modules/Filtering/Statistics/include/otbShiftScaleSampleListFilter.h
+++ b/Modules/Filtering/Statistics/include/otbShiftScaleSampleListFilter.h
@@ -94,8 +94,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ShiftScaleSampleListFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  ShiftScaleSampleListFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   /** The vector of Shifts */
   InputMeasurementVectorType m_Shifts;
diff --git a/Modules/Filtering/Statistics/include/otbStreamingCompareImageFilter.h b/Modules/Filtering/Statistics/include/otbStreamingCompareImageFilter.h
index aefd0fc2e1..42b72c1afa 100644
--- a/Modules/Filtering/Statistics/include/otbStreamingCompareImageFilter.h
+++ b/Modules/Filtering/Statistics/include/otbStreamingCompareImageFilter.h
@@ -165,8 +165,8 @@ protected:
   void VerifyInputInformation() override;
 
 private:
-  PersistentCompareImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PersistentCompareImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   itk::Array<RealType>  m_SquareOfDifferences;
   itk::Array<RealType>  m_AbsoluteValueOfDifferences;
@@ -322,8 +322,8 @@ protected:
   ~StreamingCompareImageFilter() override {}
 
 private:
-  StreamingCompareImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  StreamingCompareImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // end namespace otb
diff --git a/Modules/Filtering/Statistics/include/otbStreamingHistogramVectorImageFilter.h b/Modules/Filtering/Statistics/include/otbStreamingHistogramVectorImageFilter.h
index e370076879..a258628abe 100644
--- a/Modules/Filtering/Statistics/include/otbStreamingHistogramVectorImageFilter.h
+++ b/Modules/Filtering/Statistics/include/otbStreamingHistogramVectorImageFilter.h
@@ -188,8 +188,8 @@ protected:
   void  ThreadedGenerateData(const RegionType& outputRegionForThread, itk::ThreadIdType threadId) override;
 
 private:
-  PersistentHistogramVectorImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PersistentHistogramVectorImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   ArrayHistogramListType   m_ThreadHistogramList;
   CountVectorType          m_Size;
@@ -274,8 +274,8 @@ protected:
   ~StreamingHistogramVectorImageFilter() override {}
 
 private:
-  StreamingHistogramVectorImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  StreamingHistogramVectorImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // end namespace otb
diff --git a/Modules/Filtering/Statistics/include/otbStreamingMinMaxImageFilter.h b/Modules/Filtering/Statistics/include/otbStreamingMinMaxImageFilter.h
index a10a93cfc8..7058c1911c 100644
--- a/Modules/Filtering/Statistics/include/otbStreamingMinMaxImageFilter.h
+++ b/Modules/Filtering/Statistics/include/otbStreamingMinMaxImageFilter.h
@@ -146,8 +146,8 @@ protected:
                              itk::ThreadIdType threadId) override;
 
 private:
-  PersistentMinMaxImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PersistentMinMaxImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   std::vector<PixelType> m_ThreadMin;
   std::vector<PixelType> m_ThreadMax;
@@ -283,8 +283,8 @@ protected:
   ~StreamingMinMaxImageFilter() override {}
 
 private:
-  StreamingMinMaxImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  StreamingMinMaxImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // end namespace otb
diff --git a/Modules/Filtering/Statistics/include/otbStreamingMinMaxVectorImageFilter.h b/Modules/Filtering/Statistics/include/otbStreamingMinMaxVectorImageFilter.h
index 9b8c7b3a9d..d9c5c97b91 100644
--- a/Modules/Filtering/Statistics/include/otbStreamingMinMaxVectorImageFilter.h
+++ b/Modules/Filtering/Statistics/include/otbStreamingMinMaxVectorImageFilter.h
@@ -163,8 +163,8 @@ protected:
   void  ThreadedGenerateData(const RegionType& outputRegionForThread, itk::ThreadIdType threadId) override;
 
 private:
-  PersistentMinMaxVectorImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PersistentMinMaxVectorImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   ArrayPixelType     m_ThreadMin;
   ArrayPixelType     m_ThreadMax;
@@ -274,8 +274,8 @@ protected:
   ~StreamingMinMaxVectorImageFilter() override {}
 
 private:
-  StreamingMinMaxVectorImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  StreamingMinMaxVectorImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // end namespace otb
diff --git a/Modules/Filtering/Statistics/include/otbStreamingStatisticsImageFilter.h b/Modules/Filtering/Statistics/include/otbStreamingStatisticsImageFilter.h
index 2cc0a9e543..69a4d83d93 100644
--- a/Modules/Filtering/Statistics/include/otbStreamingStatisticsImageFilter.h
+++ b/Modules/Filtering/Statistics/include/otbStreamingStatisticsImageFilter.h
@@ -173,8 +173,8 @@ protected:
                              itk::ThreadIdType threadId) override;
 
 private:
-  PersistentStatisticsImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PersistentStatisticsImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   itk::Array<RealType>       m_ThreadSum;
   itk::Array<RealType>       m_SumOfSquares;
@@ -361,8 +361,8 @@ protected:
   ~StreamingStatisticsImageFilter() override {}
 
 private:
-  StreamingStatisticsImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  StreamingStatisticsImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // end namespace otb
diff --git a/Modules/Filtering/Statistics/include/otbStreamingStatisticsMapFromLabelImageFilter.h b/Modules/Filtering/Statistics/include/otbStreamingStatisticsMapFromLabelImageFilter.h
index d917452638..6ce9ed2be7 100644
--- a/Modules/Filtering/Statistics/include/otbStreamingStatisticsMapFromLabelImageFilter.h
+++ b/Modules/Filtering/Statistics/include/otbStreamingStatisticsMapFromLabelImageFilter.h
@@ -137,8 +137,8 @@ protected:
   void  GenerateData() override;
 
 private:
-  PersistentStreamingStatisticsMapFromLabelImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PersistentStreamingStatisticsMapFromLabelImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   MeanValueMapType                       m_RadiometricValueAccumulator;
   LabelPopulationMapType                 m_LabelPopulation;
@@ -261,8 +261,8 @@ protected:
   ~StreamingStatisticsMapFromLabelImageFilter() override {}
 
 private:
-  StreamingStatisticsMapFromLabelImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  StreamingStatisticsMapFromLabelImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // end namespace otb
diff --git a/Modules/Filtering/Statistics/include/otbStreamingStatisticsVectorImageFilter.h b/Modules/Filtering/Statistics/include/otbStreamingStatisticsVectorImageFilter.h
index 83fcb6014a..7ba64bbcbf 100644
--- a/Modules/Filtering/Statistics/include/otbStreamingStatisticsVectorImageFilter.h
+++ b/Modules/Filtering/Statistics/include/otbStreamingStatisticsVectorImageFilter.h
@@ -231,8 +231,8 @@ protected:
   void  ThreadedGenerateData(const RegionType& outputRegionForThread, itk::ThreadIdType threadId) override;
 
 private:
-  PersistentStreamingStatisticsVectorImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PersistentStreamingStatisticsVectorImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   bool m_EnableMinMax;
   bool m_EnableFirstOrderStats;
@@ -496,8 +496,8 @@ protected:
   ~StreamingStatisticsVectorImageFilter() override {}
 
 private:
-  StreamingStatisticsVectorImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  StreamingStatisticsVectorImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/Statistics/include/otbVarianceImageFilter.h b/Modules/Filtering/Statistics/include/otbVarianceImageFilter.h
index 1b0839c7b7..fcf638c2d6 100644
--- a/Modules/Filtering/Statistics/include/otbVarianceImageFilter.h
+++ b/Modules/Filtering/Statistics/include/otbVarianceImageFilter.h
@@ -121,8 +121,8 @@ protected:
                             itk::ThreadIdType threadId) override;
 
 private:
-  VarianceImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VarianceImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   InputSizeType m_Radius;
 };
diff --git a/Modules/Filtering/Statistics/include/otbVectorImageToIntensityImageFilter.h b/Modules/Filtering/Statistics/include/otbVectorImageToIntensityImageFilter.h
index 17d9155e3f..ac89d754c3 100644
--- a/Modules/Filtering/Statistics/include/otbVectorImageToIntensityImageFilter.h
+++ b/Modules/Filtering/Statistics/include/otbVectorImageToIntensityImageFilter.h
@@ -96,8 +96,8 @@ protected:
                             itk::ThreadIdType threadId) override;
 
 private:
-  VectorImageToIntensityImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VectorImageToIntensityImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 } // End namespace otb
diff --git a/Modules/Filtering/Statistics/include/otbVectorImageToMatrixImageFilter.h b/Modules/Filtering/Statistics/include/otbVectorImageToMatrixImageFilter.h
index 3bd7150ec5..939a8bced6 100644
--- a/Modules/Filtering/Statistics/include/otbVectorImageToMatrixImageFilter.h
+++ b/Modules/Filtering/Statistics/include/otbVectorImageToMatrixImageFilter.h
@@ -119,8 +119,8 @@ protected:
   void  ThreadedGenerateData(const RegionType& outputRegionForThread, itk::ThreadIdType threadId) override;
 
 private:
-  PersistentVectorImageToMatrixFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PersistentVectorImageToMatrixFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 }; // end of class PersistentVectorImageToMatrixFilter
 
 /**===========================================================================*/
@@ -200,8 +200,8 @@ protected:
   ~VectorImageToMatrixImageFilter() override {}
 
 private:
-  VectorImageToMatrixImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VectorImageToMatrixImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // end namespace otb
diff --git a/Modules/Filtering/VectorDataManipulation/include/otbConcatenateVectorDataFilter.h b/Modules/Filtering/VectorDataManipulation/include/otbConcatenateVectorDataFilter.h
index bd18a932c8..0f073805ed 100644
--- a/Modules/Filtering/VectorDataManipulation/include/otbConcatenateVectorDataFilter.h
+++ b/Modules/Filtering/VectorDataManipulation/include/otbConcatenateVectorDataFilter.h
@@ -92,8 +92,8 @@ protected:
   void ProcessNode(TreeNodeType * source, DataNodeType * outputDocument);
 
 private:
-  ConcatenateVectorDataFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ConcatenateVectorDataFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   DataNodePointerType       m_Folder;
   DataNodePointerType       m_Document;
diff --git a/Modules/Filtering/VectorDataManipulation/include/otbDBOverlapDataNodeFeatureFunction.h b/Modules/Filtering/VectorDataManipulation/include/otbDBOverlapDataNodeFeatureFunction.h
index 6b53590057..7266d7efcc 100644
--- a/Modules/Filtering/VectorDataManipulation/include/otbDBOverlapDataNodeFeatureFunction.h
+++ b/Modules/Filtering/VectorDataManipulation/include/otbDBOverlapDataNodeFeatureFunction.h
@@ -91,8 +91,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  DBOverlapDataNodeFeatureFunction(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  DBOverlapDataNodeFeatureFunction(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   /** Road / Building distance Threshold */
   PrecisionType               m_DistanceThreshold;
diff --git a/Modules/Filtering/VectorDataManipulation/include/otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.h b/Modules/Filtering/VectorDataManipulation/include/otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.h
index 3f7fdb9977..95f95e3f42 100644
--- a/Modules/Filtering/VectorDataManipulation/include/otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.h
+++ b/Modules/Filtering/VectorDataManipulation/include/otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.h
@@ -142,8 +142,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  RadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  RadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   /** Center radius */
   unsigned int m_CenterRadius;
diff --git a/Modules/Filtering/VectorDataManipulation/include/otbSpectralAngleDataNodeFeatureFunction.h b/Modules/Filtering/VectorDataManipulation/include/otbSpectralAngleDataNodeFeatureFunction.h
index 919c6ff50c..08a8a4a520 100644
--- a/Modules/Filtering/VectorDataManipulation/include/otbSpectralAngleDataNodeFeatureFunction.h
+++ b/Modules/Filtering/VectorDataManipulation/include/otbSpectralAngleDataNodeFeatureFunction.h
@@ -116,8 +116,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  SpectralAngleDataNodeFeatureFunction(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  SpectralAngleDataNodeFeatureFunction(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   /** SpectralAngle Functor & ReferencePixel*/
   ReferencePixelType          m_RefPixel;
diff --git a/Modules/Filtering/VectorDataManipulation/include/otbVectorDataAdapter.h b/Modules/Filtering/VectorDataManipulation/include/otbVectorDataAdapter.h
index b3b43bfeee..6e403dcd7c 100644
--- a/Modules/Filtering/VectorDataManipulation/include/otbVectorDataAdapter.h
+++ b/Modules/Filtering/VectorDataManipulation/include/otbVectorDataAdapter.h
@@ -86,8 +86,8 @@ protected:
   OutputPolygonListPointerType ProcessPolygonList(InputPolygonListPointerType polygonList) const override;
 
 private:
-  VectorDataAdapter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VectorDataAdapter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/VectorDataManipulation/include/otbVectorDataExtractROI.h b/Modules/Filtering/VectorDataManipulation/include/otbVectorDataExtractROI.h
index 87ed0a2f9c..390c08fe7a 100644
--- a/Modules/Filtering/VectorDataManipulation/include/otbVectorDataExtractROI.h
+++ b/Modules/Filtering/VectorDataManipulation/include/otbVectorDataExtractROI.h
@@ -134,8 +134,8 @@ protected:
   using Superclass::ProcessNode;
 
 private:
-  VectorDataExtractROI(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VectorDataExtractROI(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   int CounterClockWise(PointType firstPoint, PointType secondPoint, PointType thirdPoint);
   bool IsSegmentIntersectSegment(LinePointerType segmentLineAB, LinePointerType segmentLineCD);
diff --git a/Modules/Filtering/VectorDataManipulation/include/otbVectorDataToRandomLineGenerator.h b/Modules/Filtering/VectorDataManipulation/include/otbVectorDataToRandomLineGenerator.h
index 2db1bee395..ad9baa500a 100644
--- a/Modules/Filtering/VectorDataManipulation/include/otbVectorDataToRandomLineGenerator.h
+++ b/Modules/Filtering/VectorDataManipulation/include/otbVectorDataToRandomLineGenerator.h
@@ -106,8 +106,8 @@ protected:
   PointVectorType RandomPointsGenerator(DataNodeType * node);
 
 private:
-  VectorDataToRandomLineGenerator(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VectorDataToRandomLineGenerator(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   std::string GetNextID()
     {
diff --git a/Modules/Filtering/VectorDataManipulation/include/otbVectorDataToSpecificDescriptionFilterBase.h b/Modules/Filtering/VectorDataManipulation/include/otbVectorDataToSpecificDescriptionFilterBase.h
index 2dca72eaf4..a360d58fdc 100644
--- a/Modules/Filtering/VectorDataManipulation/include/otbVectorDataToSpecificDescriptionFilterBase.h
+++ b/Modules/Filtering/VectorDataManipulation/include/otbVectorDataToSpecificDescriptionFilterBase.h
@@ -81,8 +81,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  VectorDataToSpecificDescriptionFilterBase(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VectorDataToSpecificDescriptionFilterBase(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/VectorDataManipulation/include/otbVectorDataToVectorDataFilter.h b/Modules/Filtering/VectorDataManipulation/include/otbVectorDataToVectorDataFilter.h
index a3ba98b719..43c68b43d2 100644
--- a/Modules/Filtering/VectorDataManipulation/include/otbVectorDataToVectorDataFilter.h
+++ b/Modules/Filtering/VectorDataManipulation/include/otbVectorDataToVectorDataFilter.h
@@ -123,8 +123,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  VectorDataToVectorDataFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VectorDataToVectorDataFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Filtering/VectorDataRendering/include/otbVectorDataStyle.h b/Modules/Filtering/VectorDataRendering/include/otbVectorDataStyle.h
index f54321f2f4..39787388ea 100644
--- a/Modules/Filtering/VectorDataRendering/include/otbVectorDataStyle.h
+++ b/Modules/Filtering/VectorDataRendering/include/otbVectorDataStyle.h
@@ -84,8 +84,8 @@ protected:
   virtual void PrintSelf(std::ostream& os, itk::Indent indent) const;
 
 private:
-  VectorDataStyle(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  VectorDataStyle(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   //this parameter is used only in the case of sensor geometry
   //to adjust the scale
diff --git a/Modules/Filtering/VectorDataRendering/include/otbVectorDataToMapFilter.h b/Modules/Filtering/VectorDataRendering/include/otbVectorDataToMapFilter.h
index 57beb9ef2f..ff523bfd70 100644
--- a/Modules/Filtering/VectorDataRendering/include/otbVectorDataToMapFilter.h
+++ b/Modules/Filtering/VectorDataRendering/include/otbVectorDataToMapFilter.h
@@ -209,8 +209,8 @@ protected:
   virtual void BeforeThreadedGenerateData();
 
 private:
-  VectorDataToMapFilter(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  VectorDataToMapFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   void ProcessNode(InternalTreeNodeType * source, datasource_ptr mDatasource);
 
diff --git a/Modules/Filtering/Wavelet/include/otbSubsampleImageFilter.h b/Modules/Filtering/Wavelet/include/otbSubsampleImageFilter.h
index b39a267f71..3dfb27421a 100644
--- a/Modules/Filtering/Wavelet/include/otbSubsampleImageFilter.h
+++ b/Modules/Filtering/Wavelet/include/otbSubsampleImageFilter.h
@@ -133,8 +133,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  SubsampleImageFilter (const Self &);   // purposely not implemented
-  void operator =(const Self&);    // purposely not implemented
+  SubsampleImageFilter (const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   InputImageIndexType m_SubsampleFactor;
 }; // end of class
diff --git a/Modules/Filtering/Wavelet/include/otbWaveletImageFilter.h b/Modules/Filtering/Wavelet/include/otbWaveletImageFilter.h
index 68d914c7af..d2efb9a66b 100644
--- a/Modules/Filtering/Wavelet/include/otbWaveletImageFilter.h
+++ b/Modules/Filtering/Wavelet/include/otbWaveletImageFilter.h
@@ -99,8 +99,8 @@ protected:
   virtual void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  WaveletImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  WaveletImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   WaveletTransformFilterPointerType m_WaveletTransform;
   WaveletBandsListToWaveletsSynopsisImageFilterPointerType m_WaveletBandsListToWaveletsSynopsis;
diff --git a/Modules/Filtering/Wavelet/include/otbWaveletInverseImageFilter.h b/Modules/Filtering/Wavelet/include/otbWaveletInverseImageFilter.h
index e064511df5..fe16b95e83 100644
--- a/Modules/Filtering/Wavelet/include/otbWaveletInverseImageFilter.h
+++ b/Modules/Filtering/Wavelet/include/otbWaveletInverseImageFilter.h
@@ -100,8 +100,8 @@ protected:
   virtual void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  WaveletInverseImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  WaveletInverseImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   WaveletsSynopsisImageToWaveletsBandsListFilterPointerType m_SynopsisImageToWaveletsBandsList;
   WaveletInverseTransformFilterPointerType m_WaveletTransform;
diff --git a/Modules/Filtering/Wavelet/include/otbWaveletsBandsListToWaveletsSynopsisImageFilter.h b/Modules/Filtering/Wavelet/include/otbWaveletsBandsListToWaveletsSynopsisImageFilter.h
index 064a79856b..6dd659a202 100644
--- a/Modules/Filtering/Wavelet/include/otbWaveletsBandsListToWaveletsSynopsisImageFilter.h
+++ b/Modules/Filtering/Wavelet/include/otbWaveletsBandsListToWaveletsSynopsisImageFilter.h
@@ -92,8 +92,8 @@ protected:
   virtual void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  WaveletsBandsListToWaveletsSynopsisImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  WaveletsBandsListToWaveletsSynopsisImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   /** The decimation ratio used in the decomposition */
   unsigned int m_DecimationRatio;
diff --git a/Modules/Filtering/Wavelet/include/otbWaveletsSynopsisImageToWaveletsBandsListFilter.h b/Modules/Filtering/Wavelet/include/otbWaveletsSynopsisImageToWaveletsBandsListFilter.h
index 2c547f8b51..2fbd4143c4 100644
--- a/Modules/Filtering/Wavelet/include/otbWaveletsSynopsisImageToWaveletsBandsListFilter.h
+++ b/Modules/Filtering/Wavelet/include/otbWaveletsSynopsisImageToWaveletsBandsListFilter.h
@@ -102,8 +102,8 @@ protected:
   virtual void GenerateData(void) override;
 
 private:
-  WaveletsSynopsisImageToWaveletsBandsListFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  WaveletsSynopsisImageToWaveletsBandsListFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   /** The number of levels in the decomposition */
   unsigned int m_NumberOfLevels;
diff --git a/Modules/Fusion/MajorityVoting/include/otbNeighborhoodMajorityVotingImageFilter.h b/Modules/Fusion/MajorityVoting/include/otbNeighborhoodMajorityVotingImageFilter.h
index 042106701c..fb885033c5 100644
--- a/Modules/Fusion/MajorityVoting/include/otbNeighborhoodMajorityVotingImageFilter.h
+++ b/Modules/Fusion/MajorityVoting/include/otbNeighborhoodMajorityVotingImageFilter.h
@@ -199,8 +199,8 @@ protected:
                                                          const KernelIteratorType kernelEnd) const;
 
 private:
-  NeighborhoodMajorityVotingImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  NeighborhoodMajorityVotingImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   // Default boundary condition for majority voting filter, defaults to
   DefaultBoundaryConditionType m_MajorityVotingBoundaryCondition;
diff --git a/Modules/Hyperspectral/AnomalyDetection/include/otbLocalRxDetectorFilter.h b/Modules/Hyperspectral/AnomalyDetection/include/otbLocalRxDetectorFilter.h
index 0207220ff0..119d46ae5a 100644
--- a/Modules/Hyperspectral/AnomalyDetection/include/otbLocalRxDetectorFilter.h
+++ b/Modules/Hyperspectral/AnomalyDetection/include/otbLocalRxDetectorFilter.h
@@ -106,8 +106,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  LocalRxDetectorFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  LocalRxDetectorFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   int m_InternalRadius;
   int m_ExternalRadius;
diff --git a/Modules/Hyperspectral/AnomalyDetection/include/otbLocalRxDetectorNonThreadFilter.h b/Modules/Hyperspectral/AnomalyDetection/include/otbLocalRxDetectorNonThreadFilter.h
index 257efd5c6c..fb7ca0da7e 100644
--- a/Modules/Hyperspectral/AnomalyDetection/include/otbLocalRxDetectorNonThreadFilter.h
+++ b/Modules/Hyperspectral/AnomalyDetection/include/otbLocalRxDetectorNonThreadFilter.h
@@ -105,8 +105,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  LocalRxDetectorNonThreadFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  LocalRxDetectorNonThreadFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   int m_InternalRadius;
   int m_ExternalRadius;
diff --git a/Modules/Hyperspectral/EndmembersExtraction/include/otbEigenvalueLikelihoodMaximisation.h b/Modules/Hyperspectral/EndmembersExtraction/include/otbEigenvalueLikelihoodMaximisation.h
index 68bc950a42..4165c416de 100644
--- a/Modules/Hyperspectral/EndmembersExtraction/include/otbEigenvalueLikelihoodMaximisation.h
+++ b/Modules/Hyperspectral/EndmembersExtraction/include/otbEigenvalueLikelihoodMaximisation.h
@@ -109,8 +109,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  EigenvalueLikelihoodMaximisation(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  EigenvalueLikelihoodMaximisation(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   MatrixType m_Covariance;
   MatrixType m_Correlation;
diff --git a/Modules/Hyperspectral/EndmembersExtraction/include/otbVcaImageFilter.h b/Modules/Hyperspectral/EndmembersExtraction/include/otbVcaImageFilter.h
index e91d2346dc..c64de134eb 100644
--- a/Modules/Hyperspectral/EndmembersExtraction/include/otbVcaImageFilter.h
+++ b/Modules/Hyperspectral/EndmembersExtraction/include/otbVcaImageFilter.h
@@ -127,8 +127,8 @@ protected:
   void GenerateData() override;
 
 private:
-  VCAImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VCAImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   unsigned int m_NumberOfEndmembers;
 };
diff --git a/Modules/Hyperspectral/EndmembersExtraction/include/otbVirtualDimensionality.h b/Modules/Hyperspectral/EndmembersExtraction/include/otbVirtualDimensionality.h
index 89e8b9066f..410c093a66 100644
--- a/Modules/Hyperspectral/EndmembersExtraction/include/otbVirtualDimensionality.h
+++ b/Modules/Hyperspectral/EndmembersExtraction/include/otbVirtualDimensionality.h
@@ -122,8 +122,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  VirtualDimensionality(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VirtualDimensionality(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   MatrixType m_Covariance;
   MatrixType m_Correlation;
diff --git a/Modules/Hyperspectral/Unmixing/include/otbISRAUnmixingImageFilter.h b/Modules/Hyperspectral/Unmixing/include/otbISRAUnmixingImageFilter.h
index 965c5180e8..1b8801a8b4 100644
--- a/Modules/Hyperspectral/Unmixing/include/otbISRAUnmixingImageFilter.h
+++ b/Modules/Hyperspectral/Unmixing/include/otbISRAUnmixingImageFilter.h
@@ -176,8 +176,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ISRAUnmixingImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ISRAUnmixingImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Hyperspectral/Unmixing/include/otbMDMDNMFImageFilter.h b/Modules/Hyperspectral/Unmixing/include/otbMDMDNMFImageFilter.h
index 14d05bbca4..2c84a4164a 100644
--- a/Modules/Hyperspectral/Unmixing/include/otbMDMDNMFImageFilter.h
+++ b/Modules/Hyperspectral/Unmixing/include/otbMDMDNMFImageFilter.h
@@ -208,8 +208,8 @@ protected:
 
 
 private:
-  MDMDNMFImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  MDMDNMFImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   static void AddOneRowOfOnes(const MatrixType & m, MatrixType & M);
 
diff --git a/Modules/Hyperspectral/Unmixing/include/otbNCLSUnmixingImageFilter.h b/Modules/Hyperspectral/Unmixing/include/otbNCLSUnmixingImageFilter.h
index e7fe656079..8121661932 100644
--- a/Modules/Hyperspectral/Unmixing/include/otbNCLSUnmixingImageFilter.h
+++ b/Modules/Hyperspectral/Unmixing/include/otbNCLSUnmixingImageFilter.h
@@ -179,8 +179,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  NCLSUnmixingImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  NCLSUnmixingImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Hyperspectral/Unmixing/include/otbSparseUnmixingImageFilter.h b/Modules/Hyperspectral/Unmixing/include/otbSparseUnmixingImageFilter.h
index 4e38022e23..848641c3e0 100644
--- a/Modules/Hyperspectral/Unmixing/include/otbSparseUnmixingImageFilter.h
+++ b/Modules/Hyperspectral/Unmixing/include/otbSparseUnmixingImageFilter.h
@@ -167,8 +167,8 @@ protected:
   void GenerateData() override;
   virtual void GenerateNumberOfComponentsRequired ();
 private:
-  SparseUnmixingImageFilter(const Self &); //purposely not implemented
-  void operator=(const Self &); //purposely not implemented
+  SparseUnmixingImageFilter(const Self &) = delete;
+  void operator=(const Self &) = delete;
 
   unsigned int         m_NumberOfComponentsRequired;
   unsigned int         m_NumberOfHistogramBins;
diff --git a/Modules/Hyperspectral/Unmixing/include/otbUnConstrainedLeastSquareImageFilter.h b/Modules/Hyperspectral/Unmixing/include/otbUnConstrainedLeastSquareImageFilter.h
index ad8ef27c1b..d25c5c4fb9 100644
--- a/Modules/Hyperspectral/Unmixing/include/otbUnConstrainedLeastSquareImageFilter.h
+++ b/Modules/Hyperspectral/Unmixing/include/otbUnConstrainedLeastSquareImageFilter.h
@@ -179,9 +179,9 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  UnConstrainedLeastSquareImageFilter(const Self &); //purposely not implemented
+  UnConstrainedLeastSquareImageFilter(const Self &) = delete;
 
-  void operator =(const Self&); //purposely not implemented
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/IO/Carto/include/otbCoordinateToName.h b/Modules/IO/Carto/include/otbCoordinateToName.h
index b2bc93de52..8d21dfd227 100644
--- a/Modules/IO/Carto/include/otbCoordinateToName.h
+++ b/Modules/IO/Carto/include/otbCoordinateToName.h
@@ -127,8 +127,8 @@ protected:
   static ITK_THREAD_RETURN_TYPE ThreadFunction(void*);
 
 private:
-  CoordinateToName(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  CoordinateToName(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   double m_Lon;
   double m_Lat;
diff --git a/Modules/IO/Carto/include/otbImageToOSMVectorDataGenerator.h b/Modules/IO/Carto/include/otbImageToOSMVectorDataGenerator.h
index d69770c378..99bf42ad87 100644
--- a/Modules/IO/Carto/include/otbImageToOSMVectorDataGenerator.h
+++ b/Modules/IO/Carto/include/otbImageToOSMVectorDataGenerator.h
@@ -90,8 +90,8 @@ protected:
   ~ImageToOSMVectorDataGenerator() override {}
 
 private:
-  ImageToOSMVectorDataGenerator(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  ImageToOSMVectorDataGenerator(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   ImageExtentType                            m_ImageExtent;
 
diff --git a/Modules/IO/Carto/include/otbMapFileProductWriter.h b/Modules/IO/Carto/include/otbMapFileProductWriter.h
index 4ec15cd4e4..a2e2d7e0d1 100644
--- a/Modules/IO/Carto/include/otbMapFileProductWriter.h
+++ b/Modules/IO/Carto/include/otbMapFileProductWriter.h
@@ -174,8 +174,8 @@ protected:
   virtual void Write();
 
 private:
-  MapFileProductWriter(const Self &); //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  MapFileProductWriter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
    /** Mehtod to initialize the variables*/
    virtual void Initialize();
diff --git a/Modules/IO/Carto/include/otbOSMDataToVectorDataGenerator.h b/Modules/IO/Carto/include/otbOSMDataToVectorDataGenerator.h
index 5c3383e807..a1b5553efd 100644
--- a/Modules/IO/Carto/include/otbOSMDataToVectorDataGenerator.h
+++ b/Modules/IO/Carto/include/otbOSMDataToVectorDataGenerator.h
@@ -189,8 +189,8 @@ protected:
   ~OSMDataToVectorDataGenerator() override;
 
 private:
-  OSMDataToVectorDataGenerator(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  OSMDataToVectorDataGenerator(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   // Private method to add the key, type to the map
   void AddKeyTypeToMap(const std::string& key, const std::string& value);
diff --git a/Modules/IO/Carto/include/otbPlaceNameToLonLat.h b/Modules/IO/Carto/include/otbPlaceNameToLonLat.h
index 3ea71f9ccf..401ae529f6 100644
--- a/Modules/IO/Carto/include/otbPlaceNameToLonLat.h
+++ b/Modules/IO/Carto/include/otbPlaceNameToLonLat.h
@@ -69,8 +69,8 @@ protected:
   void ParseXMLGeonames();
 
 private:
-  PlaceNameToLonLat(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  PlaceNameToLonLat(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   double           m_Lon;
   double           m_Lat;
diff --git a/Modules/IO/Carto/include/otbWorldFile.h b/Modules/IO/Carto/include/otbWorldFile.h
index 5e26171a94..ec5756cda0 100644
--- a/Modules/IO/Carto/include/otbWorldFile.h
+++ b/Modules/IO/Carto/include/otbWorldFile.h
@@ -99,8 +99,8 @@ protected:
   ~WorldFile() override {}
 
 private:
-  WorldFile(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  WorldFile(const Self &) = delete;
+  void operator =(const Self&) = delete;
   double      m_LonOrigin;
   double      m_LatOrigin;
   double      m_LonSpacing;
diff --git a/Modules/IO/ExtendedFilename/include/otbExtendedFilenameToReaderOptions.h b/Modules/IO/ExtendedFilename/include/otbExtendedFilenameToReaderOptions.h
index 374e9dbe56..e791869599 100644
--- a/Modules/IO/ExtendedFilename/include/otbExtendedFilenameToReaderOptions.h
+++ b/Modules/IO/ExtendedFilename/include/otbExtendedFilenameToReaderOptions.h
@@ -104,8 +104,8 @@ protected:
   ~ExtendedFilenameToReaderOptions() override {}
 
 private:
-  ExtendedFilenameToReaderOptions(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  ExtendedFilenameToReaderOptions(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   OptionType               m_Options;
 
diff --git a/Modules/IO/ExtendedFilename/include/otbExtendedFilenameToWriterOptions.h b/Modules/IO/ExtendedFilename/include/otbExtendedFilenameToWriterOptions.h
index c1754bd2cd..c9a84ac7d3 100644
--- a/Modules/IO/ExtendedFilename/include/otbExtendedFilenameToWriterOptions.h
+++ b/Modules/IO/ExtendedFilename/include/otbExtendedFilenameToWriterOptions.h
@@ -105,8 +105,8 @@ protected:
   ~ExtendedFilenameToWriterOptions() override {}
 
 private:
-  ExtendedFilenameToWriterOptions(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  ExtendedFilenameToWriterOptions(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   OptionType               m_Options;
 
diff --git a/Modules/IO/IOBSQ/include/otbBSQImageIO.h b/Modules/IO/IOBSQ/include/otbBSQImageIO.h
index b954895cc5..4e9fb2e8b5 100644
--- a/Modules/IO/IOBSQ/include/otbBSQImageIO.h
+++ b/Modules/IO/IOBSQ/include/otbBSQImageIO.h
@@ -141,8 +141,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  BSQImageIO(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  BSQImageIO(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Internal method to read header information */
   bool InternalReadHeaderInformation(const std::string& file_name, std::fstream& file, const bool reportError);
diff --git a/Modules/IO/IOBSQ/include/otbBSQImageIOFactory.h b/Modules/IO/IOBSQ/include/otbBSQImageIOFactory.h
index 702729fd34..5c04743be2 100644
--- a/Modules/IO/IOBSQ/include/otbBSQImageIOFactory.h
+++ b/Modules/IO/IOBSQ/include/otbBSQImageIOFactory.h
@@ -62,8 +62,8 @@ protected:
   ~BSQImageIOFactory() override;
 
 private:
-  BSQImageIOFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  BSQImageIOFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/IO/IOGDAL/include/otbGDALImageIO.h b/Modules/IO/IOGDAL/include/otbGDALImageIO.h
index e494c588dc..c189a9f271 100644
--- a/Modules/IO/IOGDAL/include/otbGDALImageIO.h
+++ b/Modules/IO/IOGDAL/include/otbGDALImageIO.h
@@ -218,8 +218,8 @@ protected:
   unsigned int m_DatasetNumber;
 
 private:
-  GDALImageIO(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  GDALImageIO(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Determine real file name to write the image */
   std::string GetGdalWriteImageFileName(const std::string& gdalDriverShortName, const std::string& filename) const;
diff --git a/Modules/IO/IOGDAL/include/otbGDALImageIOFactory.h b/Modules/IO/IOGDAL/include/otbGDALImageIOFactory.h
index 275c0db252..0cb4411c39 100644
--- a/Modules/IO/IOGDAL/include/otbGDALImageIOFactory.h
+++ b/Modules/IO/IOGDAL/include/otbGDALImageIOFactory.h
@@ -65,8 +65,8 @@ protected:
   ~GDALImageIOFactory() override;
 
 private:
-  GDALImageIOFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  GDALImageIOFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/IO/IOGDAL/include/otbGDALOverviewsBuilder.h b/Modules/IO/IOGDAL/include/otbGDALOverviewsBuilder.h
index 1a803887fa..59a6a82680 100644
--- a/Modules/IO/IOGDAL/include/otbGDALOverviewsBuilder.h
+++ b/Modules/IO/IOGDAL/include/otbGDALOverviewsBuilder.h
@@ -172,9 +172,9 @@ protected:
 
 
 private:
-  GDALOverviewsBuilder( const Self & ); //purposely not implemented
+  GDALOverviewsBuilder( const Self & ) = delete;
 
-  void operator = ( const Self & ); //purposely not implemented
+  void operator = ( const Self & ) = delete;
 
   // void GetGDALResamplingMethod( std::string & resamplingMethod );
 
diff --git a/Modules/IO/IOGDAL/include/otbOGRIOHelper.h b/Modules/IO/IOGDAL/include/otbOGRIOHelper.h
index 003ea24d91..67b5e19778 100644
--- a/Modules/IO/IOGDAL/include/otbOGRIOHelper.h
+++ b/Modules/IO/IOGDAL/include/otbOGRIOHelper.h
@@ -96,8 +96,8 @@ protected:
   ~OGRIOHelper() override;
 
 private:
-  OGRIOHelper(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  OGRIOHelper(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   typedef DataNodeType::PointType                PointType;
 
diff --git a/Modules/IO/IOGDAL/include/otbOGRVectorDataIO.h b/Modules/IO/IOGDAL/include/otbOGRVectorDataIO.h
index 2344ef6fca..85a33b56e7 100644
--- a/Modules/IO/IOGDAL/include/otbOGRVectorDataIO.h
+++ b/Modules/IO/IOGDAL/include/otbOGRVectorDataIO.h
@@ -116,8 +116,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  OGRVectorDataIO(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  OGRVectorDataIO(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   std::string GetOGRDriverName(std::string name) const;
 
diff --git a/Modules/IO/IOGDAL/include/otbOGRVectorDataIOFactory.h b/Modules/IO/IOGDAL/include/otbOGRVectorDataIOFactory.h
index c872aeeba8..d3fbca7b53 100644
--- a/Modules/IO/IOGDAL/include/otbOGRVectorDataIOFactory.h
+++ b/Modules/IO/IOGDAL/include/otbOGRVectorDataIOFactory.h
@@ -62,8 +62,8 @@ protected:
   ~OGRVectorDataIOFactory() override;
 
 private:
-  OGRVectorDataIOFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  OGRVectorDataIOFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/IO/IOKML/include/otbKMLVectorDataIO.h b/Modules/IO/IOKML/include/otbKMLVectorDataIO.h
index c991edea6c..b6db7d326b 100644
--- a/Modules/IO/IOKML/include/otbKMLVectorDataIO.h
+++ b/Modules/IO/IOKML/include/otbKMLVectorDataIO.h
@@ -136,8 +136,8 @@ protected:
                         kmldom::MultiGeometryPtr currentMultiGeometry);
 
 private:
-  KMLVectorDataIO(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  KMLVectorDataIO(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   DataTreePointerType m_Tree;
 
diff --git a/Modules/IO/IOKML/include/otbKMLVectorDataIOFactory.h b/Modules/IO/IOKML/include/otbKMLVectorDataIOFactory.h
index 590eaf25fe..0f5948c86d 100644
--- a/Modules/IO/IOKML/include/otbKMLVectorDataIOFactory.h
+++ b/Modules/IO/IOKML/include/otbKMLVectorDataIOFactory.h
@@ -61,8 +61,8 @@ protected:
   ~KMLVectorDataIOFactory() override;
 
 private:
-  KMLVectorDataIOFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  KMLVectorDataIOFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/IO/IOLUM/include/otbLUMImageIO.h b/Modules/IO/IOLUM/include/otbLUMImageIO.h
index effe0388ca..2cff640110 100644
--- a/Modules/IO/IOLUM/include/otbLUMImageIO.h
+++ b/Modules/IO/IOLUM/include/otbLUMImageIO.h
@@ -139,8 +139,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  LUMImageIO(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  LUMImageIO(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Internal method to read header information */
   bool InternalReadHeaderInformation(std::fstream& file, const bool reportError);
diff --git a/Modules/IO/IOLUM/include/otbLUMImageIOFactory.h b/Modules/IO/IOLUM/include/otbLUMImageIOFactory.h
index f1c06592f7..25f8540f7c 100644
--- a/Modules/IO/IOLUM/include/otbLUMImageIOFactory.h
+++ b/Modules/IO/IOLUM/include/otbLUMImageIOFactory.h
@@ -62,8 +62,8 @@ protected:
   ~LUMImageIOFactory() override;
 
 private:
-  LUMImageIOFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  LUMImageIOFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/IO/IOMSTAR/include/otbMSTARImageIO.h b/Modules/IO/IOMSTAR/include/otbMSTARImageIO.h
index fed00e395b..4f641c2044 100644
--- a/Modules/IO/IOMSTAR/include/otbMSTARImageIO.h
+++ b/Modules/IO/IOMSTAR/include/otbMSTARImageIO.h
@@ -116,8 +116,8 @@ public:
                                         bool itkNotUsed(isVectorImage)) override{}
   
 private:
-  MSTARImageIO(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  MSTARImageIO(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Methode permettant de recuperer le format et le nom de l'image a partir du
   nom d'un fichier image. */
diff --git a/Modules/IO/IOMSTAR/include/otbMSTARImageIOFactory.h b/Modules/IO/IOMSTAR/include/otbMSTARImageIOFactory.h
index 0b980fd77e..7c9a7422e9 100644
--- a/Modules/IO/IOMSTAR/include/otbMSTARImageIOFactory.h
+++ b/Modules/IO/IOMSTAR/include/otbMSTARImageIOFactory.h
@@ -62,8 +62,8 @@ protected:
   ~MSTARImageIOFactory() override;
 
 private:
-  MSTARImageIOFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  MSTARImageIOFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/IO/IOONERA/include/otbONERAImageIO.h b/Modules/IO/IOONERA/include/otbONERAImageIO.h
index 620f9ddb6f..e59a2a8d3a 100644
--- a/Modules/IO/IOONERA/include/otbONERAImageIO.h
+++ b/Modules/IO/IOONERA/include/otbONERAImageIO.h
@@ -150,8 +150,8 @@ protected:
   std::fstream m_Headerfile;
 
 private:
-  ONERAImageIO(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ONERAImageIO(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Analyze the input file name : if it's a directory, check
     * that a header file exists (ENT...) and set OneraFileName to it
diff --git a/Modules/IO/IOONERA/include/otbONERAImageIOFactory.h b/Modules/IO/IOONERA/include/otbONERAImageIOFactory.h
index 6733607127..41c374a233 100644
--- a/Modules/IO/IOONERA/include/otbONERAImageIOFactory.h
+++ b/Modules/IO/IOONERA/include/otbONERAImageIOFactory.h
@@ -62,8 +62,8 @@ protected:
   ~ONERAImageIOFactory() override;
 
 private:
-  ONERAImageIOFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ONERAImageIOFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/IO/IORAD/include/otbRADImageIO.h b/Modules/IO/IORAD/include/otbRADImageIO.h
index d7823fd036..d6beea653e 100644
--- a/Modules/IO/IORAD/include/otbRADImageIO.h
+++ b/Modules/IO/IORAD/include/otbRADImageIO.h
@@ -141,8 +141,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  RADImageIO(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  RADImageIO(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Internal method to read header information */
   bool InternalReadHeaderInformation(const std::string& file_name, std::fstream& file, const bool reportError);
diff --git a/Modules/IO/IORAD/include/otbRADImageIOFactory.h b/Modules/IO/IORAD/include/otbRADImageIOFactory.h
index 1a01a6187a..9cbe10b2af 100644
--- a/Modules/IO/IORAD/include/otbRADImageIOFactory.h
+++ b/Modules/IO/IORAD/include/otbRADImageIOFactory.h
@@ -62,8 +62,8 @@ protected:
   ~RADImageIOFactory() override;
 
 private:
-  RADImageIOFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  RADImageIOFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/IO/IOTileMap/include/otbTileMapImageIO.h b/Modules/IO/IOTileMap/include/otbTileMapImageIO.h
index 27a8db556e..867a347701 100644
--- a/Modules/IO/IOTileMap/include/otbTileMapImageIO.h
+++ b/Modules/IO/IOTileMap/include/otbTileMapImageIO.h
@@ -183,8 +183,8 @@ private:
     std::string filename;
   } TileNameAndCoordType;
 
-  TileMapImageIO(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  TileMapImageIO(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   void InternalWrite(double x, double y, const void* buffer);
   void BuildFileName(const std::ostringstream& quad, std::ostringstream& filename, bool inCache = true) const;
diff --git a/Modules/IO/IOTileMap/include/otbTileMapImageIOFactory.h b/Modules/IO/IOTileMap/include/otbTileMapImageIOFactory.h
index e946e40641..658eefcd5e 100644
--- a/Modules/IO/IOTileMap/include/otbTileMapImageIOFactory.h
+++ b/Modules/IO/IOTileMap/include/otbTileMapImageIOFactory.h
@@ -64,8 +64,8 @@ protected:
   ~TileMapImageIOFactory() override;
 
 private:
-  TileMapImageIOFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  TileMapImageIOFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/IO/IOTileMap/include/otbTileMapImageIOHelper.h b/Modules/IO/IOTileMap/include/otbTileMapImageIOHelper.h
index b9286c5cb7..51eb2e641d 100644
--- a/Modules/IO/IOTileMap/include/otbTileMapImageIOHelper.h
+++ b/Modules/IO/IOTileMap/include/otbTileMapImageIOHelper.h
@@ -61,8 +61,8 @@ protected:
   ~TileMapImageIOHelper() override {}
 
 private:
-  TileMapImageIOHelper(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  TileMapImageIOHelper(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 
 }; // end class TileMapImageIOHelper
diff --git a/Modules/IO/IOXML/include/otbStatisticsXMLFileReader.h b/Modules/IO/IOXML/include/otbStatisticsXMLFileReader.h
index bf4dc01a6c..3dede58828 100644
--- a/Modules/IO/IOXML/include/otbStatisticsXMLFileReader.h
+++ b/Modules/IO/IOXML/include/otbStatisticsXMLFileReader.h
@@ -99,8 +99,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  StatisticsXMLFileReader(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  StatisticsXMLFileReader(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   std::string                 m_FileName;
   MeasurementVectorContainer  m_MeasurementVectorContainer;
diff --git a/Modules/IO/IOXML/include/otbStatisticsXMLFileWriter.h b/Modules/IO/IOXML/include/otbStatisticsXMLFileWriter.h
index c39686c525..594f55283b 100644
--- a/Modules/IO/IOXML/include/otbStatisticsXMLFileWriter.h
+++ b/Modules/IO/IOXML/include/otbStatisticsXMLFileWriter.h
@@ -96,8 +96,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  StatisticsXMLFileWriter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  StatisticsXMLFileWriter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   std::string                 m_FileName;
   MeasurementVectorContainer  m_MeasurementVectorContainer;
diff --git a/Modules/IO/ImageIO/include/otbImageFileReader.h b/Modules/IO/ImageIO/include/otbImageFileReader.h
index f2094973c9..f136a6bec8 100644
--- a/Modules/IO/ImageIO/include/otbImageFileReader.h
+++ b/Modules/IO/ImageIO/include/otbImageFileReader.h
@@ -178,8 +178,8 @@ private:
   // Retrieve the real source file name if derived dataset */
   std::string GetDerivedDatasetSourceFileName(const std::string& filename) const;
   
-  ImageFileReader(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImageFileReader(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   otb::ImageIOBase::Pointer m_ImageIO;
   bool                 m_UserSpecifiedImageIO; // keep track whether the
diff --git a/Modules/IO/ImageIO/include/otbImageFileWriter.h b/Modules/IO/ImageIO/include/otbImageFileWriter.h
index 169e946c75..7313b074b6 100644
--- a/Modules/IO/ImageIO/include/otbImageFileWriter.h
+++ b/Modules/IO/ImageIO/include/otbImageFileWriter.h
@@ -217,8 +217,8 @@ protected:
   void GenerateOutputInformation(void) override;
 
 private:
-  ImageFileWriter(const ImageFileWriter &); //purposely not implemented
-  void operator =(const ImageFileWriter&); //purposely not implemented
+  ImageFileWriter(const ImageFileWriter &) = delete;
+  void operator =(const ImageFileWriter&) = delete;
 
   void ObserveSourceFilterProgress(itk::Object* object, const itk::EventObject & event )
   {
diff --git a/Modules/IO/ImageIO/include/otbImageIOFactory.h b/Modules/IO/ImageIO/include/otbImageIOFactory.h
index 591999ac6e..4fa5006bc4 100644
--- a/Modules/IO/ImageIO/include/otbImageIOFactory.h
+++ b/Modules/IO/ImageIO/include/otbImageIOFactory.h
@@ -63,8 +63,8 @@ protected:
   ~ImageIOFactory() override;
 
 private:
-  ImageIOFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImageIOFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/IO/ImageIO/include/otbMultiImageFileWriter.h b/Modules/IO/ImageIO/include/otbMultiImageFileWriter.h
index 93581e26e6..6b01674b52 100644
--- a/Modules/IO/ImageIO/include/otbMultiImageFileWriter.h
+++ b/Modules/IO/ImageIO/include/otbMultiImageFileWriter.h
@@ -191,7 +191,7 @@ protected:
   /** Returns the current stream region of the given input */
   virtual RegionType GetStreamRegion(int inputIndex);
 
-  void operator =(const MultiImageFileWriter&); //purposely not implemented
+  void operator =(const MultiImageFileWriter&) = delete;
 
   void ObserveSourceFilterProgress(itk::Object* object, const itk::EventObject & event)
   {
diff --git a/Modules/IO/ImageIO/include/otbScalarBufferToImageFileWriter.h b/Modules/IO/ImageIO/include/otbScalarBufferToImageFileWriter.h
index b09880bce2..86d7c3faa1 100644
--- a/Modules/IO/ImageIO/include/otbScalarBufferToImageFileWriter.h
+++ b/Modules/IO/ImageIO/include/otbScalarBufferToImageFileWriter.h
@@ -105,8 +105,8 @@ protected:
 
 private:
 
-  ScalarBufferToImageFileWriter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ScalarBufferToImageFileWriter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 
   /** Writer */
diff --git a/Modules/IO/KMZWriter/include/otbKmzProductWriter.h b/Modules/IO/KMZWriter/include/otbKmzProductWriter.h
index d8957ee2d6..9acdf7eddc 100644
--- a/Modules/IO/KMZWriter/include/otbKmzProductWriter.h
+++ b/Modules/IO/KMZWriter/include/otbKmzProductWriter.h
@@ -177,8 +177,8 @@ protected:
   virtual void Write();
 
 private:
-  KmzProductWriter(const Self &); //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  KmzProductWriter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
    /** Mehtod to initialize the variables*/
    virtual void Initialize();
diff --git a/Modules/IO/TestKernel/include/otbDifferenceImageFilter.h b/Modules/IO/TestKernel/include/otbDifferenceImageFilter.h
index 1eb5e1e774..1730092353 100644
--- a/Modules/IO/TestKernel/include/otbDifferenceImageFilter.h
+++ b/Modules/IO/TestKernel/include/otbDifferenceImageFilter.h
@@ -123,8 +123,8 @@ protected:
   itk::Array<unsigned long>   m_ThreadNumberOfPixels;
 
 private:
-  DifferenceImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  DifferenceImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // end namespace otb
diff --git a/Modules/IO/VectorDataIO/include/otbVectorDataFileReader.h b/Modules/IO/VectorDataIO/include/otbVectorDataFileReader.h
index 3571baf21b..4df9b28092 100644
--- a/Modules/IO/VectorDataIO/include/otbVectorDataFileReader.h
+++ b/Modules/IO/VectorDataIO/include/otbVectorDataFileReader.h
@@ -138,8 +138,8 @@ protected:
   std::string m_FileName; // The file to be read
 
 private:
-  VectorDataFileReader(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VectorDataFileReader(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Test whether the given filename exist and it is readable.
       If the file doesn't exist or it is not readable, and exception with an
diff --git a/Modules/IO/VectorDataIO/include/otbVectorDataFileWriter.h b/Modules/IO/VectorDataIO/include/otbVectorDataFileWriter.h
index 4ef6ba6e12..bd285d54b6 100644
--- a/Modules/IO/VectorDataIO/include/otbVectorDataFileWriter.h
+++ b/Modules/IO/VectorDataIO/include/otbVectorDataFileWriter.h
@@ -116,8 +116,8 @@ protected:
   bool m_FactorySpecifiedVectorDataIO;
 
 private:
-  VectorDataFileWriter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VectorDataFileWriter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/IO/VectorDataIO/include/otbVectorDataIOFactory.h b/Modules/IO/VectorDataIO/include/otbVectorDataIOFactory.h
index 62754644fa..0a9335b31d 100644
--- a/Modules/IO/VectorDataIO/include/otbVectorDataIOFactory.h
+++ b/Modules/IO/VectorDataIO/include/otbVectorDataIOFactory.h
@@ -65,8 +65,8 @@ protected:
   ~VectorDataIOFactory() override;
 
 private:
-  VectorDataIOFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VectorDataIOFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Learning/DempsterShafer/include/otbConfusionMatrixToMassOfBelief.h b/Modules/Learning/DempsterShafer/include/otbConfusionMatrixToMassOfBelief.h
index bc5891e246..49ae13d3bf 100644
--- a/Modules/Learning/DempsterShafer/include/otbConfusionMatrixToMassOfBelief.h
+++ b/Modules/Learning/DempsterShafer/include/otbConfusionMatrixToMassOfBelief.h
@@ -147,8 +147,8 @@ protected:
   void GenerateData(void) override;
 
 private:
-  ConfusionMatrixToMassOfBelief(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  ConfusionMatrixToMassOfBelief(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   ConfusionMatrixType m_ConfusionMatrix;
   typename ConfusionMatrixMeasurementsType::Pointer m_ConfMatMeasurements;
diff --git a/Modules/Learning/DempsterShafer/include/otbDSFusionOfClassifiersImageFilter.h b/Modules/Learning/DempsterShafer/include/otbDSFusionOfClassifiersImageFilter.h
index 32d4d430fd..18afb8e0f8 100644
--- a/Modules/Learning/DempsterShafer/include/otbDSFusionOfClassifiersImageFilter.h
+++ b/Modules/Learning/DempsterShafer/include/otbDSFusionOfClassifiersImageFilter.h
@@ -152,8 +152,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  DSFusionOfClassifiersImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  DSFusionOfClassifiersImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   unsigned int                              m_NumberOfClassifiers;
   ClassifierHistogramType                   m_Universe;
diff --git a/Modules/Learning/DempsterShafer/include/otbJointMassOfBeliefFilter.h b/Modules/Learning/DempsterShafer/include/otbJointMassOfBeliefFilter.h
index 8e8807b712..4a08d78764 100644
--- a/Modules/Learning/DempsterShafer/include/otbJointMassOfBeliefFilter.h
+++ b/Modules/Learning/DempsterShafer/include/otbJointMassOfBeliefFilter.h
@@ -97,8 +97,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  JointMassOfBeliefFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  JointMassOfBeliefFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   /** Combine masses from input and output into output */
   void CombineMasses(const MassFunctionType * input, MassFunctionType * output);
diff --git a/Modules/Learning/DempsterShafer/include/otbMassOfBelief.h b/Modules/Learning/DempsterShafer/include/otbMassOfBelief.h
index 70e8f909fe..6f99177e87 100644
--- a/Modules/Learning/DempsterShafer/include/otbMassOfBelief.h
+++ b/Modules/Learning/DempsterShafer/include/otbMassOfBelief.h
@@ -186,8 +186,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  MassOfBelief(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  MassOfBelief(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   /** The masses map */
   MassMapType  m_MassesMap;
diff --git a/Modules/Learning/DempsterShafer/include/otbStandardDSCostFunction.h b/Modules/Learning/DempsterShafer/include/otbStandardDSCostFunction.h
index 2c90a53c1e..98b1bc803f 100644
--- a/Modules/Learning/DempsterShafer/include/otbStandardDSCostFunction.h
+++ b/Modules/Learning/DempsterShafer/include/otbStandardDSCostFunction.h
@@ -156,8 +156,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  StandardDSCostFunction(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  StandardDSCostFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 
   typename VectorDataType::Pointer            m_GTVectorData; //Ground Truth
diff --git a/Modules/Learning/DempsterShafer/include/otbVectorDataToDSValidatedVectorDataFilter.h b/Modules/Learning/DempsterShafer/include/otbVectorDataToDSValidatedVectorDataFilter.h
index 2a3731307e..ca77284e9a 100644
--- a/Modules/Learning/DempsterShafer/include/otbVectorDataToDSValidatedVectorDataFilter.h
+++ b/Modules/Learning/DempsterShafer/include/otbVectorDataToDSValidatedVectorDataFilter.h
@@ -177,8 +177,8 @@ protected:
     }
 
 private:
-  VectorDataToDSValidatedVectorDataFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VectorDataToDSValidatedVectorDataFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   // Descriptor bench
   DescriptorModelsType                            m_DescriptorModels;
diff --git a/Modules/Learning/DimensionalityReductionLearning/include/otbAutoencoderModelFactory.h b/Modules/Learning/DimensionalityReductionLearning/include/otbAutoencoderModelFactory.h
index e04170ec37..5110fc6137 100644
--- a/Modules/Learning/DimensionalityReductionLearning/include/otbAutoencoderModelFactory.h
+++ b/Modules/Learning/DimensionalityReductionLearning/include/otbAutoencoderModelFactory.h
@@ -65,8 +65,8 @@ protected:
   ~AutoencoderModelFactory() override;
 
 private:
-  AutoencoderModelFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  AutoencoderModelFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } //namespace otb
diff --git a/Modules/Learning/DimensionalityReductionLearning/include/otbDimensionalityReductionModelFactory.h b/Modules/Learning/DimensionalityReductionLearning/include/otbDimensionalityReductionModelFactory.h
index 98c8490383..c92d7d63d3 100644
--- a/Modules/Learning/DimensionalityReductionLearning/include/otbDimensionalityReductionModelFactory.h
+++ b/Modules/Learning/DimensionalityReductionLearning/include/otbDimensionalityReductionModelFactory.h
@@ -64,8 +64,8 @@ protected:
   ~DimensionalityReductionModelFactory() override;
 
 private:
-  DimensionalityReductionModelFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  DimensionalityReductionModelFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Register Built-in factories */
   static void RegisterBuiltInFactories();
diff --git a/Modules/Learning/DimensionalityReductionLearning/include/otbImageDimensionalityReductionFilter.h b/Modules/Learning/DimensionalityReductionLearning/include/otbImageDimensionalityReductionFilter.h
index 0cfab267dd..d48d400cc2 100644
--- a/Modules/Learning/DimensionalityReductionLearning/include/otbImageDimensionalityReductionFilter.h
+++ b/Modules/Learning/DimensionalityReductionLearning/include/otbImageDimensionalityReductionFilter.h
@@ -127,8 +127,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ImageDimensionalityReductionFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImageDimensionalityReductionFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** The model used for classification */
   ModelPointerType m_Model;
diff --git a/Modules/Learning/DimensionalityReductionLearning/include/otbPCAModelFactory.h b/Modules/Learning/DimensionalityReductionLearning/include/otbPCAModelFactory.h
index 4080014b10..2fa07f5e99 100644
--- a/Modules/Learning/DimensionalityReductionLearning/include/otbPCAModelFactory.h
+++ b/Modules/Learning/DimensionalityReductionLearning/include/otbPCAModelFactory.h
@@ -64,8 +64,8 @@ protected:
   ~PCAModelFactory() override;
 
 private:
-  PCAModelFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PCAModelFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } //namespace otb
diff --git a/Modules/Learning/DimensionalityReductionLearning/include/otbSOMModelFactory.h b/Modules/Learning/DimensionalityReductionLearning/include/otbSOMModelFactory.h
index 3276d63596..2cbc78e2d0 100644
--- a/Modules/Learning/DimensionalityReductionLearning/include/otbSOMModelFactory.h
+++ b/Modules/Learning/DimensionalityReductionLearning/include/otbSOMModelFactory.h
@@ -64,8 +64,8 @@ protected:
   ~SOMModelFactory() override;
 
 private:
-  SOMModelFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  SOMModelFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Learning/LearningBase/include/otbDecisionTree.h b/Modules/Learning/LearningBase/include/otbDecisionTree.h
index 1bb14365c0..7c71c01ba1 100644
--- a/Modules/Learning/LearningBase/include/otbDecisionTree.h
+++ b/Modules/Learning/LearningBase/include/otbDecisionTree.h
@@ -107,8 +107,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  DecisionTree(const Self &); // purposely not implemented
-  void operator =(const Self&); // purposely not implemented
+  DecisionTree(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Map holding the subtrees */
   TreeMapType* m_TreeMap;
diff --git a/Modules/Learning/LearningBase/include/otbGaussianModelComponent.h b/Modules/Learning/LearningBase/include/otbGaussianModelComponent.h
index 3677f64c12..77b4078467 100644
--- a/Modules/Learning/LearningBase/include/otbGaussianModelComponent.h
+++ b/Modules/Learning/LearningBase/include/otbGaussianModelComponent.h
@@ -97,8 +97,8 @@ protected:
   void GenerateData() override;
 
 private:
-  GaussianModelComponent(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  GaussianModelComponent(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   typename NativeMembershipFunctionType::Pointer m_GaussianMembershipFunction;
   // TODO add a m_GaussianCumulativeFunction
diff --git a/Modules/Learning/LearningBase/include/otbImageClassificationFilter.h b/Modules/Learning/LearningBase/include/otbImageClassificationFilter.h
index ee2eddff5a..a7a30cd5f8 100644
--- a/Modules/Learning/LearningBase/include/otbImageClassificationFilter.h
+++ b/Modules/Learning/LearningBase/include/otbImageClassificationFilter.h
@@ -125,8 +125,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ImageClassificationFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImageClassificationFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** The model used for classification */
   ModelPointerType m_Model;
diff --git a/Modules/Learning/LearningBase/include/otbKMeansImageClassificationFilter.h b/Modules/Learning/LearningBase/include/otbKMeansImageClassificationFilter.h
index 53a0a83fe5..3de3c8a3a2 100644
--- a/Modules/Learning/LearningBase/include/otbKMeansImageClassificationFilter.h
+++ b/Modules/Learning/LearningBase/include/otbKMeansImageClassificationFilter.h
@@ -116,8 +116,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  KMeansImageClassificationFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  KMeansImageClassificationFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Centroids used for classification */
   KMeansParametersType m_Centroids;
diff --git a/Modules/Learning/LearningBase/include/otbMachineLearningModel.h b/Modules/Learning/LearningBase/include/otbMachineLearningModel.h
index 49e409ec8f..8605edb5b1 100644
--- a/Modules/Learning/LearningBase/include/otbMachineLearningModel.h
+++ b/Modules/Learning/LearningBase/include/otbMachineLearningModel.h
@@ -240,8 +240,8 @@ private:
    */ 
   virtual TargetSampleType DoPredict(const InputSampleType& input, ConfidenceValueType * quality= ITK_NULLPTR) const = 0;  
  
-  MachineLearningModel(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  MachineLearningModel(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 } // end namespace otb
 
diff --git a/Modules/Learning/LearningBase/include/otbMachineLearningModelFactoryBase.h b/Modules/Learning/LearningBase/include/otbMachineLearningModelFactoryBase.h
index ef2d6f02bf..0e72c7fcfc 100644
--- a/Modules/Learning/LearningBase/include/otbMachineLearningModelFactoryBase.h
+++ b/Modules/Learning/LearningBase/include/otbMachineLearningModelFactoryBase.h
@@ -53,8 +53,8 @@ protected:
   static itk::SimpleMutexLock mutex;
 
 private:
-  MachineLearningModelFactoryBase(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  MachineLearningModelFactoryBase(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // end namespace otb
diff --git a/Modules/Learning/Markov/include/otbMarkovRandomFieldFilter.h b/Modules/Learning/Markov/include/otbMarkovRandomFieldFilter.h
index 1d94c27531..daced60f44 100644
--- a/Modules/Learning/Markov/include/otbMarkovRandomFieldFilter.h
+++ b/Modules/Learning/Markov/include/otbMarkovRandomFieldFilter.h
@@ -340,8 +340,8 @@ protected:
   void EnlargeOutputRequestedRegion(itk::DataObject *) override;
   void GenerateOutputInformation() override;
 
-  MarkovRandomFieldFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  MarkovRandomFieldFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   typedef typename TInputImage::SizeType InputImageSizeType;
 
diff --git a/Modules/Learning/SOM/include/otbPeriodicSOM.h b/Modules/Learning/SOM/include/otbPeriodicSOM.h
index 5f71f8cac2..ae33ebe576 100644
--- a/Modules/Learning/SOM/include/otbPeriodicSOM.h
+++ b/Modules/Learning/SOM/include/otbPeriodicSOM.h
@@ -128,8 +128,8 @@ protected:
   }
 
 private:
-  PeriodicSOM(const Self &); // purposely not implemented
-  void operator =(const Self&); // purposely not implemented
+  PeriodicSOM(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 }; // end of class
 
diff --git a/Modules/Learning/SOM/include/otbSOM.h b/Modules/Learning/SOM/include/otbSOM.h
index 56daddf8bb..f506f086dc 100644
--- a/Modules/Learning/SOM/include/otbSOM.h
+++ b/Modules/Learning/SOM/include/otbSOM.h
@@ -147,8 +147,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  SOM(const Self &); // purposely not implemented
-  void operator =(const Self&); // purposely not implemented
+  SOM(const Self &) = delete;
+  void operator =(const Self&) = delete;
   /** Size of the neurons map */
   SizeType m_MapSize;
   /** Number of iterations */
diff --git a/Modules/Learning/SOM/include/otbSOMActivationBuilder.h b/Modules/Learning/SOM/include/otbSOMActivationBuilder.h
index 928d720826..4bbdc898cf 100644
--- a/Modules/Learning/SOM/include/otbSOMActivationBuilder.h
+++ b/Modules/Learning/SOM/include/otbSOMActivationBuilder.h
@@ -81,8 +81,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  SOMActivationBuilder(const Self &); // purposely not implemented
-  void operator =(const Self&); // purposely not implemented
+  SOMActivationBuilder(const Self &) = delete;
+  void operator =(const Self&) = delete;
   /** ListSample object */
   ListSamplePointerType m_ListSample;
 };
diff --git a/Modules/Learning/SOM/include/otbSOMImageClassificationFilter.h b/Modules/Learning/SOM/include/otbSOMImageClassificationFilter.h
index 08bbb8bf05..3b913d2dae 100644
--- a/Modules/Learning/SOM/include/otbSOMImageClassificationFilter.h
+++ b/Modules/Learning/SOM/include/otbSOMImageClassificationFilter.h
@@ -114,8 +114,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  SOMImageClassificationFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  SOMImageClassificationFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** The SOM model used for classification */
   SOMMapPointerType m_Map;
diff --git a/Modules/Learning/SOM/include/otbSOMMap.h b/Modules/Learning/SOM/include/otbSOMMap.h
index 160a38e299..fdaa7aba74 100644
--- a/Modules/Learning/SOM/include/otbSOMMap.h
+++ b/Modules/Learning/SOM/include/otbSOMMap.h
@@ -97,8 +97,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  SOMMap(const Self &); // purposely not implemented
-  void operator =(const Self&); // purposely not implemented
+  SOMMap(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 } // end namespace otb
 
diff --git a/Modules/Learning/SOM/include/otbSOMWithMissingValue.h b/Modules/Learning/SOM/include/otbSOMWithMissingValue.h
index 02fba263c4..1d32719dab 100644
--- a/Modules/Learning/SOM/include/otbSOMWithMissingValue.h
+++ b/Modules/Learning/SOM/include/otbSOMWithMissingValue.h
@@ -112,8 +112,8 @@ void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 
 private:
-  SOMWithMissingValue (const Self &);    // purposely not implemented
-  void operator =(const Self&);  // purposely not implemented
+  SOMWithMissingValue (const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 }; // end of class
 
diff --git a/Modules/Learning/SOM/include/otbSOMbasedImageFilter.h b/Modules/Learning/SOM/include/otbSOMbasedImageFilter.h
index f33342d6a1..78b169646f 100644
--- a/Modules/Learning/SOM/include/otbSOMbasedImageFilter.h
+++ b/Modules/Learning/SOM/include/otbSOMbasedImageFilter.h
@@ -151,7 +151,7 @@ protected:
 
 private:
   SOMbasedImageFilter (const Self &);
-  void operator =(const Self&); //purposely not implemented
+  void operator =(const Self&) = delete;
 
   MapPointerType m_Map;
 
diff --git a/Modules/Learning/Sampling/include/otbImageSampleExtractorFilter.h b/Modules/Learning/Sampling/include/otbImageSampleExtractorFilter.h
index d7c32c9d18..af80118a95 100644
--- a/Modules/Learning/Sampling/include/otbImageSampleExtractorFilter.h
+++ b/Modules/Learning/Sampling/include/otbImageSampleExtractorFilter.h
@@ -101,8 +101,8 @@ protected:
   void ThreadedGenerateVectorData(const ogr::Layer& layerForThread, itk::ThreadIdType threadid) override;
 
 private:
-  PersistentImageSampleExtractorFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PersistentImageSampleExtractorFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Initialize fields to store extracted values (Real type) */
   void InitializeFields();
@@ -181,8 +181,8 @@ protected:
   ~ImageSampleExtractorFilter() override {}
 
 private:
-  ImageSampleExtractorFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImageSampleExtractorFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // end of namespace otb
diff --git a/Modules/Learning/Sampling/include/otbOGRDataToClassStatisticsFilter.h b/Modules/Learning/Sampling/include/otbOGRDataToClassStatisticsFilter.h
index 0b34b436e2..39230855b0 100644
--- a/Modules/Learning/Sampling/include/otbOGRDataToClassStatisticsFilter.h
+++ b/Modules/Learning/Sampling/include/otbOGRDataToClassStatisticsFilter.h
@@ -102,8 +102,8 @@ protected:
                       itk::ThreadIdType& threadid) override;
 
 private:
-  PersistentOGRDataToClassStatisticsFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PersistentOGRDataToClassStatisticsFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Number of pixels in all the polygons (per thread) */
   std::vector<unsigned long> m_NbPixelsThread;
@@ -186,8 +186,8 @@ protected:
   ~OGRDataToClassStatisticsFilter() override {}
 
 private:
-  OGRDataToClassStatisticsFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  OGRDataToClassStatisticsFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // end of namespace otb
diff --git a/Modules/Learning/Sampling/include/otbOGRDataToSamplePositionFilter.h b/Modules/Learning/Sampling/include/otbOGRDataToSamplePositionFilter.h
index 5b1364e277..e1b9dfd608 100644
--- a/Modules/Learning/Sampling/include/otbOGRDataToSamplePositionFilter.h
+++ b/Modules/Learning/Sampling/include/otbOGRDataToSamplePositionFilter.h
@@ -143,8 +143,8 @@ protected:
   void FillOneOutput(unsigned int outIdx, ogr::DataSource* outDS, bool update) override;
 
 private:
-  PersistentOGRDataToSamplePositionFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PersistentOGRDataToSamplePositionFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   void ComputeClassPartition(void);
 
@@ -262,8 +262,8 @@ protected:
   ~OGRDataToSamplePositionFilter() override {}
 
 private:
-  OGRDataToSamplePositionFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  OGRDataToSamplePositionFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 } // end of namespace otb
diff --git a/Modules/Learning/Sampling/include/otbPersistentSamplingFilterBase.h b/Modules/Learning/Sampling/include/otbPersistentSamplingFilterBase.h
index 6c8e2ab53c..89d21483fb 100644
--- a/Modules/Learning/Sampling/include/otbPersistentSamplingFilterBase.h
+++ b/Modules/Learning/Sampling/include/otbPersistentSamplingFilterBase.h
@@ -206,8 +206,8 @@ protected:
   ogr::Layer GetInMemoryOutput(unsigned int threadId, unsigned int index=0);
 
 private:
-  PersistentSamplingFilterBase(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PersistentSamplingFilterBase(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Field name containing the class name*/
   std::string m_FieldName;
diff --git a/Modules/Learning/Sampling/include/otbSampleAugmentationFilter.h b/Modules/Learning/Sampling/include/otbSampleAugmentationFilter.h
index 63b8af0a7a..ca2b341924 100644
--- a/Modules/Learning/Sampling/include/otbSampleAugmentationFilter.h
+++ b/Modules/Learning/Sampling/include/otbSampleAugmentationFilter.h
@@ -154,8 +154,8 @@ protected:
   ogr::Feature SelectTemplateFeature(const ogr::Layer& inputLayer, 
                                      const std::string& classField, int label);
 private:
-  SampleAugmentationFilter(const Self &);  //purposely not implemented
-  void operator =(const Self&);      //purposely not implemented
+  SampleAugmentationFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   std::string m_ClassFieldName;
   size_t m_Layer;
diff --git a/Modules/Learning/Sampling/include/otbSamplingRateCalculator.h b/Modules/Learning/Sampling/include/otbSamplingRateCalculator.h
index c16a758a5d..2ebafec1be 100644
--- a/Modules/Learning/Sampling/include/otbSamplingRateCalculator.h
+++ b/Modules/Learning/Sampling/include/otbSamplingRateCalculator.h
@@ -117,8 +117,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  SamplingRateCalculator(const Self &);    //purposely not implemented
-  void operator =(const Self&);    //purposely not implemented
+  SamplingRateCalculator(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Update the computed rate for a given class.*/
   void UpdateRate(const std::string &name);
diff --git a/Modules/Learning/Sampling/include/otbSamplingRateCalculatorList.h b/Modules/Learning/Sampling/include/otbSamplingRateCalculatorList.h
index ad9d86a54e..b8c74c6e4d 100644
--- a/Modules/Learning/Sampling/include/otbSamplingRateCalculatorList.h
+++ b/Modules/Learning/Sampling/include/otbSamplingRateCalculatorList.h
@@ -102,8 +102,8 @@ protected:
   ~SamplingRateCalculatorList() override {}
 
 private:
-  SamplingRateCalculatorList(const Self &);    //purposely not implemented
-  void operator =(const Self&);    //purposely not implemented
+  SamplingRateCalculatorList(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   void UpdateGlobalCounts();
 
diff --git a/Modules/Learning/Supervised/include/otbBoostMachineLearningModel.h b/Modules/Learning/Supervised/include/otbBoostMachineLearningModel.h
index 36c22666d5..56a89d9e39 100644
--- a/Modules/Learning/Supervised/include/otbBoostMachineLearningModel.h
+++ b/Modules/Learning/Supervised/include/otbBoostMachineLearningModel.h
@@ -131,8 +131,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  BoostMachineLearningModel(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  BoostMachineLearningModel(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 #ifdef OTB_OPENCV_3
   cv::Ptr<cv::ml::Boost> m_BoostModel;
diff --git a/Modules/Learning/Supervised/include/otbBoostMachineLearningModelFactory.h b/Modules/Learning/Supervised/include/otbBoostMachineLearningModelFactory.h
index 909dc5e84c..53812f30a7 100644
--- a/Modules/Learning/Supervised/include/otbBoostMachineLearningModelFactory.h
+++ b/Modules/Learning/Supervised/include/otbBoostMachineLearningModelFactory.h
@@ -65,8 +65,8 @@ protected:
   ~BoostMachineLearningModelFactory() override;
 
 private:
-  BoostMachineLearningModelFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  BoostMachineLearningModelFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Learning/Supervised/include/otbConfusionMatrixCalculator.h b/Modules/Learning/Supervised/include/otbConfusionMatrixCalculator.h
index 6db693ce26..ab5d2c737f 100644
--- a/Modules/Learning/Supervised/include/otbConfusionMatrixCalculator.h
+++ b/Modules/Learning/Supervised/include/otbConfusionMatrixCalculator.h
@@ -142,8 +142,8 @@ protected:
 
 
 private:
-  ConfusionMatrixCalculator(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ConfusionMatrixCalculator(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   double m_KappaIndex;
   double m_OverallAccuracy;
diff --git a/Modules/Learning/Supervised/include/otbConfusionMatrixMeasurements.h b/Modules/Learning/Supervised/include/otbConfusionMatrixMeasurements.h
index 96790db5a8..f1219fe1d0 100644
--- a/Modules/Learning/Supervised/include/otbConfusionMatrixMeasurements.h
+++ b/Modules/Learning/Supervised/include/otbConfusionMatrixMeasurements.h
@@ -148,8 +148,8 @@ protected:
 
 
 private:
-  ConfusionMatrixMeasurements(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ConfusionMatrixMeasurements(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   double m_KappaIndex;
   double m_OverallAccuracy;
diff --git a/Modules/Learning/Supervised/include/otbDecisionTreeMachineLearningModel.h b/Modules/Learning/Supervised/include/otbDecisionTreeMachineLearningModel.h
index fc47f21405..973211b41f 100644
--- a/Modules/Learning/Supervised/include/otbDecisionTreeMachineLearningModel.h
+++ b/Modules/Learning/Supervised/include/otbDecisionTreeMachineLearningModel.h
@@ -185,8 +185,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  DecisionTreeMachineLearningModel(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  DecisionTreeMachineLearningModel(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 #ifdef OTB_OPENCV_3
   cv::Ptr<cv::ml::DTrees> m_DTreeModel;
diff --git a/Modules/Learning/Supervised/include/otbDecisionTreeMachineLearningModelFactory.h b/Modules/Learning/Supervised/include/otbDecisionTreeMachineLearningModelFactory.h
index 5635cee32d..e19064b0b7 100644
--- a/Modules/Learning/Supervised/include/otbDecisionTreeMachineLearningModelFactory.h
+++ b/Modules/Learning/Supervised/include/otbDecisionTreeMachineLearningModelFactory.h
@@ -65,8 +65,8 @@ protected:
   ~DecisionTreeMachineLearningModelFactory() override;
 
 private:
-  DecisionTreeMachineLearningModelFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  DecisionTreeMachineLearningModelFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Learning/Supervised/include/otbExhaustiveExponentialOptimizer.h b/Modules/Learning/Supervised/include/otbExhaustiveExponentialOptimizer.h
index ae1c135e0a..205fa96056 100644
--- a/Modules/Learning/Supervised/include/otbExhaustiveExponentialOptimizer.h
+++ b/Modules/Learning/Supervised/include/otbExhaustiveExponentialOptimizer.h
@@ -106,8 +106,8 @@ protected:
   ParametersType m_MaximumMetricValuePosition;
 
 private:
-  ExhaustiveExponentialOptimizer(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ExhaustiveExponentialOptimizer(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Learning/Supervised/include/otbGradientBoostedTreeMachineLearningModel.h b/Modules/Learning/Supervised/include/otbGradientBoostedTreeMachineLearningModel.h
index 19bbab10de..744415a7b5 100644
--- a/Modules/Learning/Supervised/include/otbGradientBoostedTreeMachineLearningModel.h
+++ b/Modules/Learning/Supervised/include/otbGradientBoostedTreeMachineLearningModel.h
@@ -137,8 +137,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  GradientBoostedTreeMachineLearningModel(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  GradientBoostedTreeMachineLearningModel(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   CvGBTrees * m_GBTreeModel;
 
diff --git a/Modules/Learning/Supervised/include/otbGradientBoostedTreeMachineLearningModelFactory.h b/Modules/Learning/Supervised/include/otbGradientBoostedTreeMachineLearningModelFactory.h
index 4cc7203d88..a608dc92f1 100644
--- a/Modules/Learning/Supervised/include/otbGradientBoostedTreeMachineLearningModelFactory.h
+++ b/Modules/Learning/Supervised/include/otbGradientBoostedTreeMachineLearningModelFactory.h
@@ -67,8 +67,8 @@ protected:
   ~GradientBoostedTreeMachineLearningModelFactory() override;
 
 private:
-  GradientBoostedTreeMachineLearningModelFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  GradientBoostedTreeMachineLearningModelFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Learning/Supervised/include/otbKNearestNeighborsMachineLearningModel.h b/Modules/Learning/Supervised/include/otbKNearestNeighborsMachineLearningModel.h
index d23411d923..7e452a6202 100644
--- a/Modules/Learning/Supervised/include/otbKNearestNeighborsMachineLearningModel.h
+++ b/Modules/Learning/Supervised/include/otbKNearestNeighborsMachineLearningModel.h
@@ -111,8 +111,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  KNearestNeighborsMachineLearningModel(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  KNearestNeighborsMachineLearningModel(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 #ifdef OTB_OPENCV_3
   cv::Ptr<cv::ml::KNearest> m_KNearestModel;
diff --git a/Modules/Learning/Supervised/include/otbKNearestNeighborsMachineLearningModelFactory.h b/Modules/Learning/Supervised/include/otbKNearestNeighborsMachineLearningModelFactory.h
index 717a09313e..148589d22a 100644
--- a/Modules/Learning/Supervised/include/otbKNearestNeighborsMachineLearningModelFactory.h
+++ b/Modules/Learning/Supervised/include/otbKNearestNeighborsMachineLearningModelFactory.h
@@ -65,8 +65,8 @@ protected:
   ~KNearestNeighborsMachineLearningModelFactory() override;
 
 private:
-  KNearestNeighborsMachineLearningModelFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  KNearestNeighborsMachineLearningModelFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Learning/Supervised/include/otbLabelMapClassifier.h b/Modules/Learning/Supervised/include/otbLabelMapClassifier.h
index 51f102b96c..035dc6a7ec 100644
--- a/Modules/Learning/Supervised/include/otbLabelMapClassifier.h
+++ b/Modules/Learning/Supervised/include/otbLabelMapClassifier.h
@@ -97,8 +97,8 @@ protected:
 
 
 private:
-  LabelMapClassifier(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  LabelMapClassifier(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   /** The learning model used for classification */
   ModelPointer m_Model;
diff --git a/Modules/Learning/Supervised/include/otbLibSVMMachineLearningModel.h b/Modules/Learning/Supervised/include/otbLibSVMMachineLearningModel.h
index 8d96b2a179..b1bc08252c 100644
--- a/Modules/Learning/Supervised/include/otbLibSVMMachineLearningModel.h
+++ b/Modules/Learning/Supervised/include/otbLibSVMMachineLearningModel.h
@@ -278,8 +278,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  LibSVMMachineLearningModel(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  LibSVMMachineLearningModel(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   void BuildProblem(void);
 
diff --git a/Modules/Learning/Supervised/include/otbLibSVMMachineLearningModelFactory.h b/Modules/Learning/Supervised/include/otbLibSVMMachineLearningModelFactory.h
index 08bd6c767e..b07b98855d 100644
--- a/Modules/Learning/Supervised/include/otbLibSVMMachineLearningModelFactory.h
+++ b/Modules/Learning/Supervised/include/otbLibSVMMachineLearningModelFactory.h
@@ -63,8 +63,8 @@ protected:
   ~LibSVMMachineLearningModelFactory() override;
 
 private:
-  LibSVMMachineLearningModelFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  LibSVMMachineLearningModelFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Learning/Supervised/include/otbMachineLearningModelFactory.h b/Modules/Learning/Supervised/include/otbMachineLearningModelFactory.h
index 67ef0758cb..a059b1b6d8 100644
--- a/Modules/Learning/Supervised/include/otbMachineLearningModelFactory.h
+++ b/Modules/Learning/Supervised/include/otbMachineLearningModelFactory.h
@@ -63,8 +63,8 @@ protected:
   ~MachineLearningModelFactory() override;
 
 private:
-  MachineLearningModelFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  MachineLearningModelFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Register Built-in factories */
   static void RegisterBuiltInFactories();
diff --git a/Modules/Learning/Supervised/include/otbNeuralNetworkMachineLearningModel.h b/Modules/Learning/Supervised/include/otbNeuralNetworkMachineLearningModel.h
index 44a1bad585..72bef70d38 100644
--- a/Modules/Learning/Supervised/include/otbNeuralNetworkMachineLearningModel.h
+++ b/Modules/Learning/Supervised/include/otbNeuralNetworkMachineLearningModel.h
@@ -186,8 +186,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  NeuralNetworkMachineLearningModel(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  NeuralNetworkMachineLearningModel(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   void CreateNetwork();
   void SetupNetworkAndTrain(cv::Mat& labels);
diff --git a/Modules/Learning/Supervised/include/otbNeuralNetworkMachineLearningModelFactory.h b/Modules/Learning/Supervised/include/otbNeuralNetworkMachineLearningModelFactory.h
index ad8f1dce90..ef266b2975 100644
--- a/Modules/Learning/Supervised/include/otbNeuralNetworkMachineLearningModelFactory.h
+++ b/Modules/Learning/Supervised/include/otbNeuralNetworkMachineLearningModelFactory.h
@@ -65,8 +65,8 @@ protected:
   ~NeuralNetworkMachineLearningModelFactory() override;
 
 private:
-  NeuralNetworkMachineLearningModelFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  NeuralNetworkMachineLearningModelFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Learning/Supervised/include/otbNormalBayesMachineLearningModel.h b/Modules/Learning/Supervised/include/otbNormalBayesMachineLearningModel.h
index da1ae46c05..92e1885d62 100644
--- a/Modules/Learning/Supervised/include/otbNormalBayesMachineLearningModel.h
+++ b/Modules/Learning/Supervised/include/otbNormalBayesMachineLearningModel.h
@@ -91,8 +91,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  NormalBayesMachineLearningModel(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  NormalBayesMachineLearningModel(const Self &) = delete;
+  void operator =(const Self&) = delete;
 #ifdef OTB_OPENCV_3
   cv::Ptr<cv::ml::NormalBayesClassifier> m_NormalBayesModel;
 #else
diff --git a/Modules/Learning/Supervised/include/otbNormalBayesMachineLearningModelFactory.h b/Modules/Learning/Supervised/include/otbNormalBayesMachineLearningModelFactory.h
index 13306b5b82..09fa60ceeb 100644
--- a/Modules/Learning/Supervised/include/otbNormalBayesMachineLearningModelFactory.h
+++ b/Modules/Learning/Supervised/include/otbNormalBayesMachineLearningModelFactory.h
@@ -65,8 +65,8 @@ protected:
   ~NormalBayesMachineLearningModelFactory() override;
 
 private:
-  NormalBayesMachineLearningModelFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  NormalBayesMachineLearningModelFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Learning/Supervised/include/otbRandomForestsMachineLearningModel.h b/Modules/Learning/Supervised/include/otbRandomForestsMachineLearningModel.h
index 4dd7f0c828..77addc7ddd 100644
--- a/Modules/Learning/Supervised/include/otbRandomForestsMachineLearningModel.h
+++ b/Modules/Learning/Supervised/include/otbRandomForestsMachineLearningModel.h
@@ -151,8 +151,8 @@ protected:
   /* typename TargetListSampleType::Pointer m_TargetListSample; */
 
 private:
-  RandomForestsMachineLearningModel(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  RandomForestsMachineLearningModel(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 #ifdef OTB_OPENCV_3
   cv::Ptr<CvRTreesWrapper> m_RFModel;
diff --git a/Modules/Learning/Supervised/include/otbRandomForestsMachineLearningModelFactory.h b/Modules/Learning/Supervised/include/otbRandomForestsMachineLearningModelFactory.h
index 92dd605664..271e94d807 100644
--- a/Modules/Learning/Supervised/include/otbRandomForestsMachineLearningModelFactory.h
+++ b/Modules/Learning/Supervised/include/otbRandomForestsMachineLearningModelFactory.h
@@ -65,8 +65,8 @@ protected:
   ~RandomForestsMachineLearningModelFactory() override;
 
 private:
-  RandomForestsMachineLearningModelFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  RandomForestsMachineLearningModelFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Learning/Supervised/include/otbSVMCrossValidationCostFunction.h b/Modules/Learning/Supervised/include/otbSVMCrossValidationCostFunction.h
index 4056c47c54..47efa923e2 100644
--- a/Modules/Learning/Supervised/include/otbSVMCrossValidationCostFunction.h
+++ b/Modules/Learning/Supervised/include/otbSVMCrossValidationCostFunction.h
@@ -101,8 +101,8 @@ protected:
   void UpdateParameters(const ParametersType& parameters) const;
 
 private:
-  SVMCrossValidationCostFunction(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  SVMCrossValidationCostFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /**Pointer to the SVM model to optimize */
   SVMModelPointer m_Model;
diff --git a/Modules/Learning/Supervised/include/otbSVMMachineLearningModel.h b/Modules/Learning/Supervised/include/otbSVMMachineLearningModel.h
index d0c36eeb3b..675986a121 100644
--- a/Modules/Learning/Supervised/include/otbSVMMachineLearningModel.h
+++ b/Modules/Learning/Supervised/include/otbSVMMachineLearningModel.h
@@ -148,8 +148,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  SVMMachineLearningModel(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  SVMMachineLearningModel(const Self &) = delete;
+  void operator =(const Self&) = delete;
 #ifdef OTB_OPENCV_3
   cv::Ptr<cv::ml::SVM> m_SVMModel;
 #else
diff --git a/Modules/Learning/Supervised/include/otbSVMMachineLearningModelFactory.h b/Modules/Learning/Supervised/include/otbSVMMachineLearningModelFactory.h
index 07ab9b744d..6eec6503af 100644
--- a/Modules/Learning/Supervised/include/otbSVMMachineLearningModelFactory.h
+++ b/Modules/Learning/Supervised/include/otbSVMMachineLearningModelFactory.h
@@ -65,8 +65,8 @@ protected:
   ~SVMMachineLearningModelFactory() override;
 
 private:
-  SVMMachineLearningModelFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  SVMMachineLearningModelFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Learning/Supervised/include/otbSharkRandomForestsMachineLearningModel.h b/Modules/Learning/Supervised/include/otbSharkRandomForestsMachineLearningModel.h
index 41015ee9dc..ce7e0487a3 100644
--- a/Modules/Learning/Supervised/include/otbSharkRandomForestsMachineLearningModel.h
+++ b/Modules/Learning/Supervised/include/otbSharkRandomForestsMachineLearningModel.h
@@ -158,8 +158,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  SharkRandomForestsMachineLearningModel(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  SharkRandomForestsMachineLearningModel(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   shark::RFClassifier<unsigned int> m_RFModel;
   shark::RFTrainer<unsigned int> m_RFTrainer;
diff --git a/Modules/Learning/Supervised/include/otbSharkRandomForestsMachineLearningModelFactory.h b/Modules/Learning/Supervised/include/otbSharkRandomForestsMachineLearningModelFactory.h
index 756d5102a1..53b4adcb5e 100644
--- a/Modules/Learning/Supervised/include/otbSharkRandomForestsMachineLearningModelFactory.h
+++ b/Modules/Learning/Supervised/include/otbSharkRandomForestsMachineLearningModelFactory.h
@@ -63,8 +63,8 @@ protected:
   virtual ~SharkRandomForestsMachineLearningModelFactory();
 
 private:
-  SharkRandomForestsMachineLearningModelFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  SharkRandomForestsMachineLearningModelFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Learning/Supervised/test/otbExhaustiveExponentialOptimizerTest.cxx b/Modules/Learning/Supervised/test/otbExhaustiveExponentialOptimizerTest.cxx
index 1b0dec3f63..5c6344b28b 100644
--- a/Modules/Learning/Supervised/test/otbExhaustiveExponentialOptimizerTest.cxx
+++ b/Modules/Learning/Supervised/test/otbExhaustiveExponentialOptimizerTest.cxx
@@ -98,8 +98,8 @@ public:
   ~Quadratic2DCostFunction() override{};
 
 private:
-  Quadratic2DCostFunction(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  Quadratic2DCostFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   ModelType m_FunctionInternalParameters;
 
diff --git a/Modules/Learning/Unsupervised/include/otbContingencyTable.h b/Modules/Learning/Unsupervised/include/otbContingencyTable.h
index f7d1b10183..3981ef1e9c 100644
--- a/Modules/Learning/Unsupervised/include/otbContingencyTable.h
+++ b/Modules/Learning/Unsupervised/include/otbContingencyTable.h
@@ -144,8 +144,8 @@ protected:
   }
 
 private:
-  ContingencyTable(const Self &); //purposely not implemented
-  void operator=(const Self &); //purposely not implemented
+  ContingencyTable(const Self &) = delete;
+  void operator=(const Self &) = delete;
 
   static size_t GetLabelsMaximumLength(const LabelList& labels, size_t maxWidth)
   {
diff --git a/Modules/Learning/Unsupervised/include/otbContingencyTableCalculator.h b/Modules/Learning/Unsupervised/include/otbContingencyTableCalculator.h
index 614146a8ee..e9b365d3e5 100644
--- a/Modules/Learning/Unsupervised/include/otbContingencyTableCalculator.h
+++ b/Modules/Learning/Unsupervised/include/otbContingencyTableCalculator.h
@@ -87,8 +87,8 @@ protected:
   //void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ContingencyTableCalculator(const Self &); //purposely not implemented
-  void operator=(const Self &); //purposely not implemented
+  ContingencyTableCalculator(const Self &) = delete;
+  void operator=(const Self &) = delete;
 
   MapOfClassesType m_LabelCount;
   unsigned long m_NumberOfRefClasses;
diff --git a/Modules/Learning/Unsupervised/include/otbSharkKMeansMachineLearningModel.h b/Modules/Learning/Unsupervised/include/otbSharkKMeansMachineLearningModel.h
index a060046c61..6faa3e9602 100644
--- a/Modules/Learning/Unsupervised/include/otbSharkKMeansMachineLearningModel.h
+++ b/Modules/Learning/Unsupervised/include/otbSharkKMeansMachineLearningModel.h
@@ -143,8 +143,8 @@ protected:
   void PrintSelf(std::ostream &os, itk::Indent indent) const override;
 
 private:
-  SharkKMeansMachineLearningModel(const Self &); //purposely not implemented
-  void operator=(const Self &); //purposely not implemented
+  SharkKMeansMachineLearningModel(const Self &) = delete;
+  void operator=(const Self &) = delete;
 
   // Parameters set by the user
   bool m_Normalized;
diff --git a/Modules/Learning/Unsupervised/include/otbSharkKMeansMachineLearningModelFactory.h b/Modules/Learning/Unsupervised/include/otbSharkKMeansMachineLearningModelFactory.h
index 05365b8ff7..69e22afe39 100644
--- a/Modules/Learning/Unsupervised/include/otbSharkKMeansMachineLearningModelFactory.h
+++ b/Modules/Learning/Unsupervised/include/otbSharkKMeansMachineLearningModelFactory.h
@@ -62,8 +62,8 @@ protected:
   virtual ~SharkKMeansMachineLearningModelFactory();
 
 private:
-  SharkKMeansMachineLearningModelFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  SharkKMeansMachineLearningModelFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/MPI/MPIConfig/include/otbMPIConfig.h b/Modules/MPI/MPIConfig/include/otbMPIConfig.h
index 053581a3a9..012726c2b5 100644
--- a/Modules/MPI/MPIConfig/include/otbMPIConfig.h
+++ b/Modules/MPI/MPIConfig/include/otbMPIConfig.h
@@ -81,8 +81,8 @@ protected:
 
 private:
 
-  MPIConfig(const MPIConfig &); //purposely not implemented
-  void operator =(const MPIConfig&); //purposely not implemented
+  MPIConfig(const MPIConfig &) = delete;
+  void operator =(const MPIConfig&) = delete;
 
   // MPI rank
   unsigned int m_MyRank;
diff --git a/Modules/MPI/MPITiffWriter/include/otbSimpleParallelTiffWriter.h b/Modules/MPI/MPITiffWriter/include/otbSimpleParallelTiffWriter.h
index a7c413064a..959ffd45dc 100644
--- a/Modules/MPI/MPITiffWriter/include/otbSimpleParallelTiffWriter.h
+++ b/Modules/MPI/MPITiffWriter/include/otbSimpleParallelTiffWriter.h
@@ -264,8 +264,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  SimpleParallelTiffWriter(const SimpleParallelTiffWriter &); //purposely not implemented
-  void operator =(const SimpleParallelTiffWriter&); //purposely not implemented
+  SimpleParallelTiffWriter(const SimpleParallelTiffWriter &) = delete;
+  void operator =(const SimpleParallelTiffWriter&) = delete;
 
   void ObserveSourceFilterProgress(itk::Object* object, const itk::EventObject & event )
   {
diff --git a/Modules/OBIA/RCC8/include/otbImageListToRCC8GraphFilter.h b/Modules/OBIA/RCC8/include/otbImageListToRCC8GraphFilter.h
index 2a31c34c09..2baa1fce09 100644
--- a/Modules/OBIA/RCC8/include/otbImageListToRCC8GraphFilter.h
+++ b/Modules/OBIA/RCC8/include/otbImageListToRCC8GraphFilter.h
@@ -78,8 +78,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ImageListToRCC8GraphFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImageListToRCC8GraphFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 } // End namespace otb
 #ifndef OTB_MANUAL_INSTANTIATION
diff --git a/Modules/OBIA/RCC8/include/otbRCC8GraphSource.h b/Modules/OBIA/RCC8/include/otbRCC8GraphSource.h
index a70f4bcf6a..817ddb4330 100644
--- a/Modules/OBIA/RCC8/include/otbRCC8GraphSource.h
+++ b/Modules/OBIA/RCC8/include/otbRCC8GraphSource.h
@@ -62,8 +62,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  RCC8GraphSource(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  RCC8GraphSource(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 } // End namespace otb
 
diff --git a/Modules/Radiometry/Indices/include/otbGAndRIndexImageFilter.h b/Modules/Radiometry/Indices/include/otbGAndRIndexImageFilter.h
index 000fd04623..511ce50752 100644
--- a/Modules/Radiometry/Indices/include/otbGAndRIndexImageFilter.h
+++ b/Modules/Radiometry/Indices/include/otbGAndRIndexImageFilter.h
@@ -80,8 +80,8 @@ protected:
                               itk::ThreadIdType threadId );
   */
 private:
-  GAndRIndexImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  GAndRIndexImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Radiometry/Indices/include/otbMultiChannelGAndRIndexImageFilter.h b/Modules/Radiometry/Indices/include/otbMultiChannelGAndRIndexImageFilter.h
index 3a230c4a10..721ad41404 100644
--- a/Modules/Radiometry/Indices/include/otbMultiChannelGAndRIndexImageFilter.h
+++ b/Modules/Radiometry/Indices/include/otbMultiChannelGAndRIndexImageFilter.h
@@ -119,8 +119,8 @@ protected:
     os << indent << "Red index: " << m_RedIndex << std::endl;
   }
 private:
-  MultiChannelGAndRIndexImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  MultiChannelGAndRIndexImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
   /** Green channel index */
   unsigned int m_GreenIndex;
   /** Red channel index */
diff --git a/Modules/Radiometry/Indices/include/otbMultiChannelRAndBAndNIRIndexImageFilter.h b/Modules/Radiometry/Indices/include/otbMultiChannelRAndBAndNIRIndexImageFilter.h
index 8094f66ac4..2b6dbed7f8 100644
--- a/Modules/Radiometry/Indices/include/otbMultiChannelRAndBAndNIRIndexImageFilter.h
+++ b/Modules/Radiometry/Indices/include/otbMultiChannelRAndBAndNIRIndexImageFilter.h
@@ -134,8 +134,8 @@ protected:
   }
 
 private:
-  MultiChannelRAndBAndNIRIndexImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  MultiChannelRAndBAndNIRIndexImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Red channel index */
   unsigned int m_RedIndex;
diff --git a/Modules/Radiometry/Indices/include/otbMultiChannelRAndGAndNIRIndexImageFilter.h b/Modules/Radiometry/Indices/include/otbMultiChannelRAndGAndNIRIndexImageFilter.h
index 6b8daf81ed..33d4082a63 100644
--- a/Modules/Radiometry/Indices/include/otbMultiChannelRAndGAndNIRIndexImageFilter.h
+++ b/Modules/Radiometry/Indices/include/otbMultiChannelRAndGAndNIRIndexImageFilter.h
@@ -135,8 +135,8 @@ protected:
   }
 
 private:
-  MultiChannelRAndGAndNIRIndexImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  MultiChannelRAndGAndNIRIndexImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Red channel index */
   unsigned int m_RedIndex;
diff --git a/Modules/Radiometry/Indices/include/otbMultiChannelRAndNIRIndexImageFilter.h b/Modules/Radiometry/Indices/include/otbMultiChannelRAndNIRIndexImageFilter.h
index 7b07d757d8..79005e1f92 100644
--- a/Modules/Radiometry/Indices/include/otbMultiChannelRAndNIRIndexImageFilter.h
+++ b/Modules/Radiometry/Indices/include/otbMultiChannelRAndNIRIndexImageFilter.h
@@ -119,8 +119,8 @@ protected:
     os << indent << "NIR index: " << m_NIRIndex << std::endl;
   }
 private:
-  MultiChannelRAndNIRIndexImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  MultiChannelRAndNIRIndexImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
   /** Red channel index */
   unsigned int m_RedIndex;
   /** NIR channel index */
diff --git a/Modules/Radiometry/Indices/include/otbMultiChannelRadiometricImageFilter.h b/Modules/Radiometry/Indices/include/otbMultiChannelRadiometricImageFilter.h
index b972ee855d..bc72f2dae4 100644
--- a/Modules/Radiometry/Indices/include/otbMultiChannelRadiometricImageFilter.h
+++ b/Modules/Radiometry/Indices/include/otbMultiChannelRadiometricImageFilter.h
@@ -143,8 +143,8 @@ protected:
     os << indent << "MIR index: " << m_MIRIndex << std::endl;
   }
 private:
-  MultiChannelRadiometricImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  MultiChannelRadiometricImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
   /** Blue channel index */
   unsigned int m_BlueIndex;
   /** Green channel index */
diff --git a/Modules/Radiometry/Indices/include/otbNDVIDataNodeFeatureFunction.h b/Modules/Radiometry/Indices/include/otbNDVIDataNodeFeatureFunction.h
index 028adb1623..84993a0180 100644
--- a/Modules/Radiometry/Indices/include/otbNDVIDataNodeFeatureFunction.h
+++ b/Modules/Radiometry/Indices/include/otbNDVIDataNodeFeatureFunction.h
@@ -121,8 +121,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  NDVIDataNodeFeatureFunction(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  NDVIDataNodeFeatureFunction(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   /** NDVI Threshold & Functor */
   PrecisionType               m_NDVIThreshold;
diff --git a/Modules/Radiometry/Indices/include/otbRAndBAndNIRIndexImageFilter.h b/Modules/Radiometry/Indices/include/otbRAndBAndNIRIndexImageFilter.h
index ad01b1b2c6..d042eed158 100644
--- a/Modules/Radiometry/Indices/include/otbRAndBAndNIRIndexImageFilter.h
+++ b/Modules/Radiometry/Indices/include/otbRAndBAndNIRIndexImageFilter.h
@@ -79,8 +79,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  RAndBAndNIRIndexImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  RAndBAndNIRIndexImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Radiometry/Indices/include/otbRAndGAndNIRIndexImageFilter.h b/Modules/Radiometry/Indices/include/otbRAndGAndNIRIndexImageFilter.h
index 26cb6eb0a4..9f9f60b865 100644
--- a/Modules/Radiometry/Indices/include/otbRAndGAndNIRIndexImageFilter.h
+++ b/Modules/Radiometry/Indices/include/otbRAndGAndNIRIndexImageFilter.h
@@ -79,8 +79,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  RAndGAndNIRIndexImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  RAndGAndNIRIndexImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Radiometry/Indices/include/otbRAndNIRIndexImageFilter.h b/Modules/Radiometry/Indices/include/otbRAndNIRIndexImageFilter.h
index c93b6df863..075384e25a 100644
--- a/Modules/Radiometry/Indices/include/otbRAndNIRIndexImageFilter.h
+++ b/Modules/Radiometry/Indices/include/otbRAndNIRIndexImageFilter.h
@@ -79,8 +79,8 @@ protected:
                               itk::ThreadIdType threadId );
   */
 private:
-  RAndNIRIndexImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  RAndNIRIndexImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Radiometry/Indices/include/otbWaterSqrtSpectralAngleImageFilter.h b/Modules/Radiometry/Indices/include/otbWaterSqrtSpectralAngleImageFilter.h
index 0ad1616833..c3d38d6587 100644
--- a/Modules/Radiometry/Indices/include/otbWaterSqrtSpectralAngleImageFilter.h
+++ b/Modules/Radiometry/Indices/include/otbWaterSqrtSpectralAngleImageFilter.h
@@ -76,8 +76,8 @@ protected:
   ~WaterSqrtSpectralAngleImageFilter() override {}
 
 private:
-  WaterSqrtSpectralAngleImageFilter(Self &); // purposely not implemented
-  void operator =(const Self&);    // purposely not implemented
+  WaterSqrtSpectralAngleImageFilter(Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 }  // end namespace otb
diff --git a/Modules/Radiometry/OpticalCalibration/include/otbAtmosphericCorrectionParameters.h b/Modules/Radiometry/OpticalCalibration/include/otbAtmosphericCorrectionParameters.h
index f1516e26ef..a2c9ffed8e 100644
--- a/Modules/Radiometry/OpticalCalibration/include/otbAtmosphericCorrectionParameters.h
+++ b/Modules/Radiometry/OpticalCalibration/include/otbAtmosphericCorrectionParameters.h
@@ -145,8 +145,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  AtmosphericCorrectionParameters(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  AtmosphericCorrectionParameters(const Self &) = delete;
+  void operator =(const Self&) = delete;
   /** Path to an Aeronet data file, allows computing aerosol optical and water vapor amounts. */
   std::string m_AeronetFileName;
   /** Day */
diff --git a/Modules/Radiometry/OpticalCalibration/include/otbAtmosphericRadiativeTerms.h b/Modules/Radiometry/OpticalCalibration/include/otbAtmosphericRadiativeTerms.h
index 5daf902b5a..9d7168d378 100644
--- a/Modules/Radiometry/OpticalCalibration/include/otbAtmosphericRadiativeTerms.h
+++ b/Modules/Radiometry/OpticalCalibration/include/otbAtmosphericRadiativeTerms.h
@@ -124,8 +124,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  AtmosphericRadiativeTermsSingleChannel(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  AtmosphericRadiativeTermsSingleChannel(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** The intrinsic atmospheric reflectance. */
   double m_IntrinsicAtmosphericReflectance;
@@ -271,8 +271,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  AtmosphericRadiativeTerms(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  AtmosphericRadiativeTerms(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** The vector containing each channel information. */
   VectorValueType m_Values;
diff --git a/Modules/Radiometry/OpticalCalibration/include/otbImageMetadataCorrectionParameters.h b/Modules/Radiometry/OpticalCalibration/include/otbImageMetadataCorrectionParameters.h
index 3a1b75de08..fa82ec2592 100644
--- a/Modules/Radiometry/OpticalCalibration/include/otbImageMetadataCorrectionParameters.h
+++ b/Modules/Radiometry/OpticalCalibration/include/otbImageMetadataCorrectionParameters.h
@@ -153,8 +153,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ImageMetadataCorrectionParameters(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImageMetadataCorrectionParameters(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** The Solar zenithal angle */
   double m_SolarZenithalAngle;
diff --git a/Modules/Radiometry/OpticalCalibration/include/otbSpectralSensitivityReader.h b/Modules/Radiometry/OpticalCalibration/include/otbSpectralSensitivityReader.h
index ddd04f0ef5..5b298a8c2e 100644
--- a/Modules/Radiometry/OpticalCalibration/include/otbSpectralSensitivityReader.h
+++ b/Modules/Radiometry/OpticalCalibration/include/otbSpectralSensitivityReader.h
@@ -103,8 +103,8 @@ protected:
 
 
 private:
-  SpectralSensitivityReader(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  SpectralSensitivityReader(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   std::string      m_FileName;
   std::string      m_DataPath;
diff --git a/Modules/Radiometry/OpticalCalibration/include/otbWavelengthSpectralBands.h b/Modules/Radiometry/OpticalCalibration/include/otbWavelengthSpectralBands.h
index 444e811611..ceaf7e5348 100644
--- a/Modules/Radiometry/OpticalCalibration/include/otbWavelengthSpectralBands.h
+++ b/Modules/Radiometry/OpticalCalibration/include/otbWavelengthSpectralBands.h
@@ -69,8 +69,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  WavelengthSpectralBands(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  WavelengthSpectralBands(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** List that contains the filter function value. */
   WavelengthSpectralBandListType m_WavelengthSpectralBandsList;
diff --git a/Modules/Radiometry/SARCalibration/include/otbSarBrightnessFunction.h b/Modules/Radiometry/SARCalibration/include/otbSarBrightnessFunction.h
index 2b4ae21d3f..a5d5188b1c 100644
--- a/Modules/Radiometry/SARCalibration/include/otbSarBrightnessFunction.h
+++ b/Modules/Radiometry/SARCalibration/include/otbSarBrightnessFunction.h
@@ -144,8 +144,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  SarBrightnessFunction(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  SarBrightnessFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   FunctorRealType             m_Scale;
   ParametricFunctionPointer   m_Noise;
diff --git a/Modules/Radiometry/SARCalibration/include/otbSarBrightnessToImageFilter.h b/Modules/Radiometry/SARCalibration/include/otbSarBrightnessToImageFilter.h
index f7587b4130..1d23c658b5 100644
--- a/Modules/Radiometry/SARCalibration/include/otbSarBrightnessToImageFilter.h
+++ b/Modules/Radiometry/SARCalibration/include/otbSarBrightnessToImageFilter.h
@@ -91,8 +91,8 @@ protected:
 
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 private:
-  SarBrightnessToImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  SarBrightnessToImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Radiometry/SARCalibration/include/otbSarDeburstImageFilter.h b/Modules/Radiometry/SARCalibration/include/otbSarDeburstImageFilter.h
index e65b7e6809..f90161345c 100644
--- a/Modules/Radiometry/SARCalibration/include/otbSarDeburstImageFilter.h
+++ b/Modules/Radiometry/SARCalibration/include/otbSarDeburstImageFilter.h
@@ -84,8 +84,8 @@ protected:
   RegionType OutputRegionToInputRegion(const RegionType& outputRegion) const;
   
 private:
-  SarDeburstImageFilter(const Self&); // purposely not implemented
-  void operator=(const Self &); // purposely not implemented
+  SarDeburstImageFilter(const Self&) = delete;
+  void operator=(const Self &) = delete;
 
   // Vector of line records
   LinesRecordVectorType m_LinesRecord;
diff --git a/Modules/Radiometry/SARCalibration/include/otbSarParametricMapFunction.h b/Modules/Radiometry/SARCalibration/include/otbSarParametricMapFunction.h
index 17dd6372fd..4c3466cc55 100644
--- a/Modules/Radiometry/SARCalibration/include/otbSarParametricMapFunction.h
+++ b/Modules/Radiometry/SARCalibration/include/otbSarParametricMapFunction.h
@@ -131,8 +131,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  SarParametricMapFunction(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  SarParametricMapFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   double Horner(PointType point) const;
 
diff --git a/Modules/Radiometry/SARCalibration/include/otbSarRadiometricCalibrationFunction.h b/Modules/Radiometry/SARCalibration/include/otbSarRadiometricCalibrationFunction.h
index 3fb6463376..2bb43aabb9 100644
--- a/Modules/Radiometry/SARCalibration/include/otbSarRadiometricCalibrationFunction.h
+++ b/Modules/Radiometry/SARCalibration/include/otbSarRadiometricCalibrationFunction.h
@@ -180,8 +180,8 @@ protected:
   /** Flags to indicate if these values needs to be applied in calibration*/
 
 private:
-  SarRadiometricCalibrationFunction(const Self &);  //purposely not implemented
-  void operator =(const Self&);  //purposely not implemented
+  SarRadiometricCalibrationFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   RealType             m_Scale;
   bool                        m_EnableNoise;
diff --git a/Modules/Radiometry/SARCalibration/include/otbSarRadiometricCalibrationToImageFilter.h b/Modules/Radiometry/SARCalibration/include/otbSarRadiometricCalibrationToImageFilter.h
index 19e49832d8..a9f427c3f7 100644
--- a/Modules/Radiometry/SARCalibration/include/otbSarRadiometricCalibrationToImageFilter.h
+++ b/Modules/Radiometry/SARCalibration/include/otbSarRadiometricCalibrationToImageFilter.h
@@ -122,8 +122,8 @@ protected:
 
 private:
 
-  SarRadiometricCalibrationToImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  SarRadiometricCalibrationToImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 
   short m_LookupSelected;
diff --git a/Modules/Radiometry/SARCalibration/include/otbTerraSarBrightnessImageFilter.h b/Modules/Radiometry/SARCalibration/include/otbTerraSarBrightnessImageFilter.h
index ca65a82c49..220e2b3a58 100644
--- a/Modules/Radiometry/SARCalibration/include/otbTerraSarBrightnessImageFilter.h
+++ b/Modules/Radiometry/SARCalibration/include/otbTerraSarBrightnessImageFilter.h
@@ -149,8 +149,8 @@ protected:
   void BeforeThreadedGenerateData() override;
 
 private:
-  TerraSarBrightnessImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  TerraSarBrightnessImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Radiometry/Simulation/include/otbAtmosphericEffects.h b/Modules/Radiometry/Simulation/include/otbAtmosphericEffects.h
index bf33680f86..59f5b80431 100644
--- a/Modules/Radiometry/Simulation/include/otbAtmosphericEffects.h
+++ b/Modules/Radiometry/Simulation/include/otbAtmosphericEffects.h
@@ -102,8 +102,8 @@ class AtmosphericEffects
 
 
         private:
-           AtmosphericEffects(const Self&); //purposely not implemented
-           void operator=(const Self&); //purposely not implemented
+           AtmosphericEffects(const Self&) = delete;
+           void operator=(const Self&) = delete;
 
            AtmosphericRadiativeTermsPointerType m_AtmosphericRadiativeTerms;
            InputSpectralResponsePointerType m_InputSpectralResponse;
diff --git a/Modules/Radiometry/Simulation/include/otbImageSimulationMethod.h b/Modules/Radiometry/Simulation/include/otbImageSimulationMethod.h
index 04973ed9a7..bb5ce34108 100644
--- a/Modules/Radiometry/Simulation/include/otbImageSimulationMethod.h
+++ b/Modules/Radiometry/Simulation/include/otbImageSimulationMethod.h
@@ -175,8 +175,8 @@ protected:
   void GenerateOutputInformation() override;
 
 private:
-  ImageSimulationMethod(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImageSimulationMethod(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   unsigned int m_NumberOfComponentsPerPixel;
   unsigned int m_Radius; //radius of prolate interpolate
diff --git a/Modules/Radiometry/Simulation/include/otbLabelMapToSimulatedImageFilter.h b/Modules/Radiometry/Simulation/include/otbLabelMapToSimulatedImageFilter.h
index c8dd54ea89..e268f8341f 100644
--- a/Modules/Radiometry/Simulation/include/otbLabelMapToSimulatedImageFilter.h
+++ b/Modules/Radiometry/Simulation/include/otbLabelMapToSimulatedImageFilter.h
@@ -129,8 +129,8 @@ protected:
 
 
 private:
-   LabelMapToSimulatedImageFilter(const Self &); //purposely not implemented
-   void operator =(const Self&); //purposely not implemented
+   LabelMapToSimulatedImageFilter(const Self &) = delete;
+   void operator =(const Self&) = delete;
 
    unsigned int m_NumberOfComponentsPerPixel;
    std::string m_SatRSRFilename;
diff --git a/Modules/Radiometry/Simulation/include/otbLabelToProSailParameters.h b/Modules/Radiometry/Simulation/include/otbLabelToProSailParameters.h
index a65f6998e4..a51ef87a3f 100644
--- a/Modules/Radiometry/Simulation/include/otbLabelToProSailParameters.h
+++ b/Modules/Radiometry/Simulation/include/otbLabelToProSailParameters.h
@@ -94,8 +94,8 @@ protected:
 
 
 private:
-   LabelToProSailParameters(const Self &); //purposely not implemented
-   void operator =(const Self&); //purposely not implemented
+   LabelToProSailParameters(const Self &) = delete;
+   void operator =(const Self&) = delete;
 
 
 };
diff --git a/Modules/Radiometry/Simulation/include/otbLabelToSimulationParametersBase.h b/Modules/Radiometry/Simulation/include/otbLabelToSimulationParametersBase.h
index db03b1bbe2..04951cdd20 100644
--- a/Modules/Radiometry/Simulation/include/otbLabelToSimulationParametersBase.h
+++ b/Modules/Radiometry/Simulation/include/otbLabelToSimulationParametersBase.h
@@ -97,8 +97,8 @@ protected:
 
 
 private:
-   LabelToSimulationParametersBase(const Self &); //purposely not implemented
-   void operator =(const Self&); //purposely not implemented
+   LabelToSimulationParametersBase(const Self &) = delete;
+   void operator =(const Self&) = delete;
 
    ParametersType m_Step1Parameters;
    ParametersType m_Step2Parameters;
diff --git a/Modules/Radiometry/Simulation/include/otbLeafParameters.h b/Modules/Radiometry/Simulation/include/otbLeafParameters.h
index ed7af69394..d11c352856 100644
--- a/Modules/Radiometry/Simulation/include/otbLeafParameters.h
+++ b/Modules/Radiometry/Simulation/include/otbLeafParameters.h
@@ -83,8 +83,8 @@ class OTBSimulation_EXPORT LeafParameters : public itk::DataObject
       void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
    private:
-      LeafParameters(const Self&); //purposely not implemented
-      void operator=(const Self&); //purposely not implemented
+      LeafParameters(const Self&) = delete;
+      void operator=(const Self&) = delete;
 
       double m_Cab; //Chlorophyll content
       double m_Car; //Carotenoid content
diff --git a/Modules/Radiometry/Simulation/include/otbProSailParameters.h b/Modules/Radiometry/Simulation/include/otbProSailParameters.h
index 5790a66ed3..d17c64a2e4 100644
--- a/Modules/Radiometry/Simulation/include/otbProSailParameters.h
+++ b/Modules/Radiometry/Simulation/include/otbProSailParameters.h
@@ -119,8 +119,8 @@ class ITK_EXPORT ProSailParameters : public itk::DataObject
 
 
    private:
-      ProSailParameters(const Self&); //purposely not implemented
-      void operator=(const Self&); //purposely not implemented
+      ProSailParameters(const Self&) = delete;
+      void operator=(const Self&) = delete;
 
       double m_Cab; //Chlorophyll content
       double m_Car; //Carotenoid content
diff --git a/Modules/Radiometry/Simulation/include/otbProspectModel.h b/Modules/Radiometry/Simulation/include/otbProspectModel.h
index 668659c09d..2f89f4c2f0 100644
--- a/Modules/Radiometry/Simulation/include/otbProspectModel.h
+++ b/Modules/Radiometry/Simulation/include/otbProspectModel.h
@@ -87,8 +87,8 @@ class OTBSimulation_EXPORT ProspectModel : public SimulationStep1Base
       double Tav(const int theta, double ref);
 
    private:
-      ProspectModel(const Self&); //purposely not implemented
-      void operator=(const Self&); //purposely not implemented
+      ProspectModel(const Self&) = delete;
+      void operator=(const Self&) = delete;
 
 };
 
diff --git a/Modules/Radiometry/Simulation/include/otbReduceSpectralResponse.h b/Modules/Radiometry/Simulation/include/otbReduceSpectralResponse.h
index 4a97b1ec99..93996e8397 100644
--- a/Modules/Radiometry/Simulation/include/otbReduceSpectralResponse.h
+++ b/Modules/Radiometry/Simulation/include/otbReduceSpectralResponse.h
@@ -148,8 +148,8 @@ protected:
   InputSpectralResponsePointerType m_InputSpectralResponse;
 
 private:
-  ReduceSpectralResponse(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  ReduceSpectralResponse(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   /** the computed response */
   InputSpectralResponsePointerType m_ReduceResponse;
diff --git a/Modules/Radiometry/Simulation/include/otbReduceSpectralResponseClassifierRAndNIR.h b/Modules/Radiometry/Simulation/include/otbReduceSpectralResponseClassifierRAndNIR.h
index c8e334ae5e..8e89bfddbc 100644
--- a/Modules/Radiometry/Simulation/include/otbReduceSpectralResponseClassifierRAndNIR.h
+++ b/Modules/Radiometry/Simulation/include/otbReduceSpectralResponseClassifierRAndNIR.h
@@ -130,8 +130,8 @@ namespace otb
           //void PrintSelf(std::ostream& os, itk::Indent indent) const;
 
         private:
-          ReduceSpectralResponseClassifierRAndNIR(const Self&); //purposely not implemented
-          void operator=(const Self&); //purposely not implemented
+          ReduceSpectralResponseClassifierRAndNIR(const Self&) = delete;
+          void operator=(const Self&) = delete;
 
           /** Input reduce spectral sensor model of response */
           InputReduceSpectralResponsePointerType  m_InputReduceSpectralResponse;
diff --git a/Modules/Radiometry/Simulation/include/otbSatelliteRSR.h b/Modules/Radiometry/Simulation/include/otbSatelliteRSR.h
index 2fde7522df..5ca29341b8 100644
--- a/Modules/Radiometry/Simulation/include/otbSatelliteRSR.h
+++ b/Modules/Radiometry/Simulation/include/otbSatelliteRSR.h
@@ -155,8 +155,8 @@ protected:
   bool m_SortBands;
 
 private:
-  SatelliteRSR(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  SatelliteRSR(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   /** Vector of SpectralResponse */
   RSRVectorType m_RSR;
diff --git a/Modules/Radiometry/Simulation/include/otbSimulationStep1Base.h b/Modules/Radiometry/Simulation/include/otbSimulationStep1Base.h
index ecf5472ab0..ca71ba4639 100644
--- a/Modules/Radiometry/Simulation/include/otbSimulationStep1Base.h
+++ b/Modules/Radiometry/Simulation/include/otbSimulationStep1Base.h
@@ -73,8 +73,8 @@ protected:
 
 
 private:
-   SimulationStep1Base(const Self &); //purposely not implemented
-   void operator =(const Self&); //purposely not implemented
+   SimulationStep1Base(const Self &) = delete;
+   void operator =(const Self&) = delete;
 
    ParametersType m_Parameters;
 
diff --git a/Modules/Radiometry/Simulation/include/otbSimulationStep2Base.h b/Modules/Radiometry/Simulation/include/otbSimulationStep2Base.h
index 5aed410ef7..040d7bb552 100644
--- a/Modules/Radiometry/Simulation/include/otbSimulationStep2Base.h
+++ b/Modules/Radiometry/Simulation/include/otbSimulationStep2Base.h
@@ -75,8 +75,8 @@ protected:
   }
 
 private:
-  SimulationStep2Base(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  SimulationStep2Base(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   ParametersType m_Parameters;
 
diff --git a/Modules/Radiometry/Simulation/include/otbSpatialisationFilter.h b/Modules/Radiometry/Simulation/include/otbSpatialisationFilter.h
index 7e5b72aa98..303eb9267c 100644
--- a/Modules/Radiometry/Simulation/include/otbSpatialisationFilter.h
+++ b/Modules/Radiometry/Simulation/include/otbSpatialisationFilter.h
@@ -120,8 +120,8 @@ protected:
   void GenerateOutputInformation() override;
 
 private:
-   SpatialisationFilter(const Self &); //purposely not implemented
-   void operator =(const Self&); //purposely not implemented
+   SpatialisationFilter(const Self &) = delete;
+   void operator =(const Self&) = delete;
 
    /** Common size for all objects in number of pixels (number of rows, number of columns).*/
    SizeType m_ObjectSize;
diff --git a/Modules/Radiometry/Simulation/include/otbSpectralResponse.h b/Modules/Radiometry/Simulation/include/otbSpectralResponse.h
index 789924e4f5..5039e4359f 100644
--- a/Modules/Radiometry/Simulation/include/otbSpectralResponse.h
+++ b/Modules/Radiometry/Simulation/include/otbSpectralResponse.h
@@ -182,8 +182,8 @@ protected:
   void ComputeInterval();
 
 private:
-  SpectralResponse(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  SpectralResponse(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
 };
 
diff --git a/Modules/Registration/DisparityMap/include/otbDisparityMapEstimationMethod.h b/Modules/Registration/DisparityMap/include/otbDisparityMapEstimationMethod.h
index 56a89eeccb..1c5e118fe9 100644
--- a/Modules/Registration/DisparityMap/include/otbDisparityMapEstimationMethod.h
+++ b/Modules/Registration/DisparityMap/include/otbDisparityMapEstimationMethod.h
@@ -195,8 +195,8 @@ protected:
   void  GenerateData() override;
 
 private:
-  DisparityMapEstimationMethod(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  DisparityMapEstimationMethod(const Self &) = delete;
+  void operator =(const Self&) = delete;
   /**
    * The metric used for local registration.
    */
diff --git a/Modules/Registration/DisparityMap/include/otbDisparityMapMedianFilter.h b/Modules/Registration/DisparityMap/include/otbDisparityMapMedianFilter.h
index 1031f95bbf..8a58f4d2f2 100644
--- a/Modules/Registration/DisparityMap/include/otbDisparityMapMedianFilter.h
+++ b/Modules/Registration/DisparityMap/include/otbDisparityMapMedianFilter.h
@@ -169,8 +169,8 @@ protected:
   void GenerateData() override;
 
 private:
-  DisparityMapMedianFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  DisparityMapMedianFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   /** Radius of median filter */
   SizeType m_Radius;
diff --git a/Modules/Registration/DisparityMap/include/otbDisparityMapTo3DFilter.h b/Modules/Registration/DisparityMap/include/otbDisparityMapTo3DFilter.h
index 1558f7592f..ab1eb7d37e 100644
--- a/Modules/Registration/DisparityMap/include/otbDisparityMapTo3DFilter.h
+++ b/Modules/Registration/DisparityMap/include/otbDisparityMapTo3DFilter.h
@@ -167,8 +167,8 @@ protected:
 
 
 private:
-  DisparityMapTo3DFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  DisparityMapTo3DFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   /** Keywordlist of left sensor image */
   ImageKeywordListType m_LeftKeywordList;
diff --git a/Modules/Registration/DisparityMap/include/otbDisparityMapToDEMFilter.h b/Modules/Registration/DisparityMap/include/otbDisparityMapToDEMFilter.h
index 7ed891c1f2..163d54dc1f 100644
--- a/Modules/Registration/DisparityMap/include/otbDisparityMapToDEMFilter.h
+++ b/Modules/Registration/DisparityMap/include/otbDisparityMapToDEMFilter.h
@@ -175,8 +175,8 @@ protected:
 
 
 private:
-  DisparityMapToDEMFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  DisparityMapToDEMFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   /** Minimum elevation of the DEM in meters */
   double m_ElevationMin;
diff --git a/Modules/Registration/DisparityMap/include/otbDisparityTranslateFilter.h b/Modules/Registration/DisparityMap/include/otbDisparityTranslateFilter.h
index 92133ed381..aa7d1c8ac1 100644
--- a/Modules/Registration/DisparityMap/include/otbDisparityTranslateFilter.h
+++ b/Modules/Registration/DisparityMap/include/otbDisparityTranslateFilter.h
@@ -139,8 +139,8 @@ protected:
 
 
 private:
-  DisparityTranslateFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  DisparityTranslateFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   PixelType              m_NoDataValue;
 };
diff --git a/Modules/Registration/DisparityMap/include/otbFineRegistrationImageFilter.h b/Modules/Registration/DisparityMap/include/otbFineRegistrationImageFilter.h
index 5d909dd279..a300e02bb8 100644
--- a/Modules/Registration/DisparityMap/include/otbFineRegistrationImageFilter.h
+++ b/Modules/Registration/DisparityMap/include/otbFineRegistrationImageFilter.h
@@ -201,8 +201,8 @@ protected:
   void GenerateOutputInformation(void) override;
 
 private:
-  FineRegistrationImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  FineRegistrationImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
   
   inline double callMetric(double val1,double val2,double &oldRes,bool &flag);
   inline void updateOptParams(double potBestVal,double parx,double pary,                             //inputs
diff --git a/Modules/Registration/DisparityMap/include/otbMultiDisparityMapTo3DFilter.h b/Modules/Registration/DisparityMap/include/otbMultiDisparityMapTo3DFilter.h
index 94a28101d5..085da5cfad 100644
--- a/Modules/Registration/DisparityMap/include/otbMultiDisparityMapTo3DFilter.h
+++ b/Modules/Registration/DisparityMap/include/otbMultiDisparityMapTo3DFilter.h
@@ -172,8 +172,8 @@ protected:
   void ThreadedGenerateData(const RegionType & outputRegionForThread, itk::ThreadIdType threadId) override;
 
 private:
-  MultiDisparityMapTo3DFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  MultiDisparityMapTo3DFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   /** Keywordlist of reference sensor image */
   ImageKeywordListType m_ReferenceKeywordList;
diff --git a/Modules/Registration/DisparityMap/include/otbNCCRegistrationFilter.h b/Modules/Registration/DisparityMap/include/otbNCCRegistrationFilter.h
index b7b7a72436..4ee49f4aec 100644
--- a/Modules/Registration/DisparityMap/include/otbNCCRegistrationFilter.h
+++ b/Modules/Registration/DisparityMap/include/otbNCCRegistrationFilter.h
@@ -151,8 +151,8 @@ protected:
   void GenerateInputRequestedRegion() override;
 
 private:
-  NCCRegistrationFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  NCCRegistrationFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Registration/DisparityMap/include/otbNCCRegistrationFunction.h b/Modules/Registration/DisparityMap/include/otbNCCRegistrationFunction.h
index ac5580ab6f..0dd35eae8b 100644
--- a/Modules/Registration/DisparityMap/include/otbNCCRegistrationFunction.h
+++ b/Modules/Registration/DisparityMap/include/otbNCCRegistrationFunction.h
@@ -164,8 +164,8 @@ protected:
   };
 
 private:
-  NCCRegistrationFunction(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  NCCRegistrationFunction(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Cache fixed image information. */
   SpacingType m_FixedImageSpacing;
diff --git a/Modules/Registration/DisparityMap/include/otbPixelWiseBlockMatchingImageFilter.h b/Modules/Registration/DisparityMap/include/otbPixelWiseBlockMatchingImageFilter.h
index 496ee3a423..466b493f6f 100644
--- a/Modules/Registration/DisparityMap/include/otbPixelWiseBlockMatchingImageFilter.h
+++ b/Modules/Registration/DisparityMap/include/otbPixelWiseBlockMatchingImageFilter.h
@@ -462,7 +462,7 @@ protected:
   void ThreadedGenerateData(const RegionType & outputRegionForThread, itk::ThreadIdType threadId) override;
 
 private:
-  PixelWiseBlockMatchingImageFilter(const Self&); //purposely not implemented
+  PixelWiseBlockMatchingImageFilter(const Self&) = delete;
   void operator=(const Self&); //purposely not implemeFnted
 
   /** The radius of the blocks */
diff --git a/Modules/Registration/DisparityMap/include/otbSubPixelDisparityImageFilter.h b/Modules/Registration/DisparityMap/include/otbSubPixelDisparityImageFilter.h
index c5489f78ea..e01d3f6652 100644
--- a/Modules/Registration/DisparityMap/include/otbSubPixelDisparityImageFilter.h
+++ b/Modules/Registration/DisparityMap/include/otbSubPixelDisparityImageFilter.h
@@ -235,8 +235,8 @@ protected:
   void AfterThreadedGenerateData() override;
 
 private:
-  SubPixelDisparityImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  SubPixelDisparityImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   /** parabolic refinement method */
   void ParabolicRefinement(const RegionType& outputRegionForThread, itk::ThreadIdType threadId);
diff --git a/Modules/Registration/DisplacementField/include/otbBSplinesInterpolateDisplacementFieldGenerator.h b/Modules/Registration/DisplacementField/include/otbBSplinesInterpolateDisplacementFieldGenerator.h
index 93d440ead4..0b9b93e7ff 100644
--- a/Modules/Registration/DisplacementField/include/otbBSplinesInterpolateDisplacementFieldGenerator.h
+++ b/Modules/Registration/DisplacementField/include/otbBSplinesInterpolateDisplacementFieldGenerator.h
@@ -73,8 +73,8 @@ protected:
   void GenerateData() override;
 
 private:
-  BSplinesInterpolateDisplacementFieldGenerator(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  BSplinesInterpolateDisplacementFieldGenerator(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 } // End namespace otb
 #ifndef OTB_MANUAL_INSTANTIATION
diff --git a/Modules/Registration/DisplacementField/include/otbBSplinesInterpolateTransformDisplacementFieldGenerator.h b/Modules/Registration/DisplacementField/include/otbBSplinesInterpolateTransformDisplacementFieldGenerator.h
index 8ead3ebe92..02bedae933 100644
--- a/Modules/Registration/DisplacementField/include/otbBSplinesInterpolateTransformDisplacementFieldGenerator.h
+++ b/Modules/Registration/DisplacementField/include/otbBSplinesInterpolateTransformDisplacementFieldGenerator.h
@@ -121,8 +121,8 @@ protected:
   bool IsAngular(unsigned int index);
 
 private:
-  BSplinesInterpolateTransformDisplacementFieldGenerator(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  BSplinesInterpolateTransformDisplacementFieldGenerator(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   IndexVectorType m_AngularParameters;
 
diff --git a/Modules/Registration/DisplacementField/include/otbNNearestPointsLinearInterpolateDisplacementFieldGenerator.h b/Modules/Registration/DisplacementField/include/otbNNearestPointsLinearInterpolateDisplacementFieldGenerator.h
index 0aaa57fcca..1b701aa480 100644
--- a/Modules/Registration/DisplacementField/include/otbNNearestPointsLinearInterpolateDisplacementFieldGenerator.h
+++ b/Modules/Registration/DisplacementField/include/otbNNearestPointsLinearInterpolateDisplacementFieldGenerator.h
@@ -74,8 +74,8 @@ protected:
   void GenerateData() override;
 
 private:
-  NNearestPointsLinearInterpolateDisplacementFieldGenerator(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  NNearestPointsLinearInterpolateDisplacementFieldGenerator(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   unsigned int m_NumberOfPoints;
 };
diff --git a/Modules/Registration/DisplacementField/include/otbNNearestTransformsLinearInterpolateDisplacementFieldGenerator.h b/Modules/Registration/DisplacementField/include/otbNNearestTransformsLinearInterpolateDisplacementFieldGenerator.h
index a3f307fb40..3ee3175124 100644
--- a/Modules/Registration/DisplacementField/include/otbNNearestTransformsLinearInterpolateDisplacementFieldGenerator.h
+++ b/Modules/Registration/DisplacementField/include/otbNNearestTransformsLinearInterpolateDisplacementFieldGenerator.h
@@ -81,8 +81,8 @@ protected:
   void GenerateData() override;
 
 private:
-  NNearestTransformsLinearInterpolateDisplacementFieldGenerator(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  NNearestTransformsLinearInterpolateDisplacementFieldGenerator(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   unsigned int m_NumberOfPoints;
 };
diff --git a/Modules/Registration/DisplacementField/include/otbNearestPointDisplacementFieldGenerator.h b/Modules/Registration/DisplacementField/include/otbNearestPointDisplacementFieldGenerator.h
index b52405d6c1..8ae789e0f9 100644
--- a/Modules/Registration/DisplacementField/include/otbNearestPointDisplacementFieldGenerator.h
+++ b/Modules/Registration/DisplacementField/include/otbNearestPointDisplacementFieldGenerator.h
@@ -71,8 +71,8 @@ protected:
   void GenerateData() override;
 
 private:
-  NearestPointDisplacementFieldGenerator(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  NearestPointDisplacementFieldGenerator(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 } // End namespace otb
 #ifndef OTB_MANUAL_INSTANTIATION
diff --git a/Modules/Registration/DisplacementField/include/otbNearestTransformDisplacementFieldGenerator.h b/Modules/Registration/DisplacementField/include/otbNearestTransformDisplacementFieldGenerator.h
index cda5218322..393b66ac68 100644
--- a/Modules/Registration/DisplacementField/include/otbNearestTransformDisplacementFieldGenerator.h
+++ b/Modules/Registration/DisplacementField/include/otbNearestTransformDisplacementFieldGenerator.h
@@ -74,8 +74,8 @@ protected:
   void GenerateData() override;
 
 private:
-  NearestTransformDisplacementFieldGenerator(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  NearestTransformDisplacementFieldGenerator(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 } // End namespace otb
 #ifndef OTB_MANUAL_INSTANTIATION
diff --git a/Modules/Registration/DisplacementField/include/otbPointSetToDisplacementFieldGenerator.h b/Modules/Registration/DisplacementField/include/otbPointSetToDisplacementFieldGenerator.h
index bbd237cb10..c3b8d1312e 100644
--- a/Modules/Registration/DisplacementField/include/otbPointSetToDisplacementFieldGenerator.h
+++ b/Modules/Registration/DisplacementField/include/otbPointSetToDisplacementFieldGenerator.h
@@ -142,8 +142,8 @@ protected:
   double EuclideanDistanceMetric(IndexType index, PointType p);
 
 private:
-  PointSetToDisplacementFieldGenerator(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PointSetToDisplacementFieldGenerator(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /**
    * The threshold of metric value.
diff --git a/Modules/Registration/DisplacementField/include/otbPointSetWithTransformToDisplacementFieldGenerator.h b/Modules/Registration/DisplacementField/include/otbPointSetWithTransformToDisplacementFieldGenerator.h
index 7618deceb6..e399698d79 100644
--- a/Modules/Registration/DisplacementField/include/otbPointSetWithTransformToDisplacementFieldGenerator.h
+++ b/Modules/Registration/DisplacementField/include/otbPointSetWithTransformToDisplacementFieldGenerator.h
@@ -89,8 +89,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  PointSetWithTransformToDisplacementFieldGenerator(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PointSetWithTransformToDisplacementFieldGenerator(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /**
    * The transform used for local registration.
diff --git a/Modules/Registration/Stereo/include/otbAdhesionCorrectionFilter.h b/Modules/Registration/Stereo/include/otbAdhesionCorrectionFilter.h
index 9e6542dfd2..c283d48473 100644
--- a/Modules/Registration/Stereo/include/otbAdhesionCorrectionFilter.h
+++ b/Modules/Registration/Stereo/include/otbAdhesionCorrectionFilter.h
@@ -163,8 +163,8 @@ protected:
   void GenerateOutputInformation(void) override;
 
 private:
-  AdhesionCorrectionFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  AdhesionCorrectionFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   SizeType                      m_ImageSize;
   /** The radius for correlation */
diff --git a/Modules/Registration/Stereo/include/otbBijectionCoherencyFilter.h b/Modules/Registration/Stereo/include/otbBijectionCoherencyFilter.h
index 07cd1703d7..1f376f666d 100644
--- a/Modules/Registration/Stereo/include/otbBijectionCoherencyFilter.h
+++ b/Modules/Registration/Stereo/include/otbBijectionCoherencyFilter.h
@@ -126,8 +126,8 @@ protected:
   void ThreadedGenerateData(const OutputRegionType & outputRegionForThread, itk::ThreadIdType threadId) override;
 
 private:
-  BijectionCoherencyFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  BijectionCoherencyFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   /** Tolerance radius (in pixels) */
   double m_Tolerance;
diff --git a/Modules/Registration/Stereo/include/otbLineOfSightOptimizer.h b/Modules/Registration/Stereo/include/otbLineOfSightOptimizer.h
index c7e96cbb10..0f18ecb306 100644
--- a/Modules/Registration/Stereo/include/otbLineOfSightOptimizer.h
+++ b/Modules/Registration/Stereo/include/otbLineOfSightOptimizer.h
@@ -91,8 +91,8 @@ protected:
 
 
 private:
-  LineOfSightOptimizer(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  LineOfSightOptimizer(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   /** residues from the last computation on each line of sight */
   ResidueType m_Residues;
diff --git a/Modules/Registration/Stereo/include/otbMulti3DMapToDEMFilter.h b/Modules/Registration/Stereo/include/otbMulti3DMapToDEMFilter.h
index 6dc2c0e1a9..9818ce81aa 100644
--- a/Modules/Registration/Stereo/include/otbMulti3DMapToDEMFilter.h
+++ b/Modules/Registration/Stereo/include/otbMulti3DMapToDEMFilter.h
@@ -261,8 +261,8 @@ private:
 
   void SetOutputParametersFromImage();
 
-  Multi3DMapToDEMFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  Multi3DMapToDEMFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   /** Keywordlist of each map */
  // std::vector<ImageKeywordListType> m_MapKeywordLists;
diff --git a/Modules/Registration/Stereo/include/otbStereoSensorModelToElevationMapFilter.h b/Modules/Registration/Stereo/include/otbStereoSensorModelToElevationMapFilter.h
index 40d1423006..c5dcde360c 100644
--- a/Modules/Registration/Stereo/include/otbStereoSensorModelToElevationMapFilter.h
+++ b/Modules/Registration/Stereo/include/otbStereoSensorModelToElevationMapFilter.h
@@ -211,8 +211,8 @@ protected:
 
 
 private:
-  StereoSensorModelToElevationFilter(const Self&); // purposely not implemented
-  void operator=(const Self&); // purposely not implemented
+  StereoSensorModelToElevationFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   inline double Correlation(const std::vector<double>& master,
                             const std::vector<double>& slave) const;
diff --git a/Modules/Registration/Stereo/include/otbStereorectificationDisplacementFieldSource.h b/Modules/Registration/Stereo/include/otbStereorectificationDisplacementFieldSource.h
index efd6ed38cf..37eb7ad7bc 100644
--- a/Modules/Registration/Stereo/include/otbStereorectificationDisplacementFieldSource.h
+++ b/Modules/Registration/Stereo/include/otbStereorectificationDisplacementFieldSource.h
@@ -184,7 +184,7 @@ private:
   StereorectificationDisplacementFieldSource( const Self& ); // purposely
                                                             // not
                                                             // implemented
-  void operator=( const Self& ); //purposely not implemented
+  void operator=( const Self& ) = delete;
 
   /** This elevation offset is used to compute the epipolar direction */
   double m_ElevationOffset;
diff --git a/Modules/Segmentation/CCOBIA/include/otbConnectedComponentMuParserFunctor.h b/Modules/Segmentation/CCOBIA/include/otbConnectedComponentMuParserFunctor.h
index 6afdd12b14..0483498764 100644
--- a/Modules/Segmentation/CCOBIA/include/otbConnectedComponentMuParserFunctor.h
+++ b/Modules/Segmentation/CCOBIA/include/otbConnectedComponentMuParserFunctor.h
@@ -214,8 +214,8 @@ public:
 
 private:
 
-  ConnectedComponentMuParserFunctor(const Self &); //purposely not implemented
-  void operator =(const Self &); //purposely not implemented
+  ConnectedComponentMuParserFunctor(const Self &) = delete;
+  void operator =(const Self &) = delete;
 
   std::string m_Expression;
   ParserType::Pointer m_Parser;
diff --git a/Modules/Segmentation/CCOBIA/include/otbLabelObjectOpeningMuParserFilter.h b/Modules/Segmentation/CCOBIA/include/otbLabelObjectOpeningMuParserFilter.h
index b5bf076015..a45b596142 100644
--- a/Modules/Segmentation/CCOBIA/include/otbLabelObjectOpeningMuParserFilter.h
+++ b/Modules/Segmentation/CCOBIA/include/otbLabelObjectOpeningMuParserFilter.h
@@ -125,8 +125,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  LabelObjectOpeningMuParserFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  LabelObjectOpeningMuParserFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   FunctorType m_Functor;
   std::string m_Expression;
diff --git a/Modules/Segmentation/Conversion/include/otbLabelImageRegionMergingFilter.h b/Modules/Segmentation/Conversion/include/otbLabelImageRegionMergingFilter.h
index 0664c20e27..df55b8a0dd 100644
--- a/Modules/Segmentation/Conversion/include/otbLabelImageRegionMergingFilter.h
+++ b/Modules/Segmentation/Conversion/include/otbLabelImageRegionMergingFilter.h
@@ -134,8 +134,8 @@ protected:
   RegionAdjacencyMapType LabelImageToRegionAdjacencyMap(typename OutputLabelImageType::Pointer inputLabelImage);
 
 private:
-  LabelImageRegionMergingFilter(const Self &);     //purposely not implemented
-  void operator =(const Self&);             //purposely not implemented
+  LabelImageRegionMergingFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Range bandwidth */
   RealType                       m_RangeBandwidth;
diff --git a/Modules/Segmentation/Conversion/include/otbLabelImageRegionPruningFilter.h b/Modules/Segmentation/Conversion/include/otbLabelImageRegionPruningFilter.h
index 932d64309a..37a02d6111 100644
--- a/Modules/Segmentation/Conversion/include/otbLabelImageRegionPruningFilter.h
+++ b/Modules/Segmentation/Conversion/include/otbLabelImageRegionPruningFilter.h
@@ -133,8 +133,8 @@ protected:
   RegionAdjacencyMapType LabelImageToRegionAdjacencyMap(typename OutputLabelImageType::Pointer inputLabelImage);
 
 private:
-  LabelImageRegionPruningFilter(const Self &);     //purposely not implemented
-  void operator =(const Self&);             //purposely not implemented
+  LabelImageRegionPruningFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Number of components per pixel in the input image */
   unsigned int                   m_NumberOfComponentsPerPixel;
diff --git a/Modules/Segmentation/Conversion/include/otbLabelImageToOGRDataSourceFilter.h b/Modules/Segmentation/Conversion/include/otbLabelImageToOGRDataSourceFilter.h
index 9e0202ef81..6132caa2ed 100644
--- a/Modules/Segmentation/Conversion/include/otbLabelImageToOGRDataSourceFilter.h
+++ b/Modules/Segmentation/Conversion/include/otbLabelImageToOGRDataSourceFilter.h
@@ -128,8 +128,8 @@ protected:
   using Superclass::MakeOutput;
 
 private:
-  LabelImageToOGRDataSourceFilter(const Self &);  //purposely not implemented
-  void operator =(const Self&);      //purposely not implemented
+  LabelImageToOGRDataSourceFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   std::string m_FieldName;
   bool m_Use8Connected;
diff --git a/Modules/Segmentation/Conversion/include/otbLabelImageToVectorDataFilter.h b/Modules/Segmentation/Conversion/include/otbLabelImageToVectorDataFilter.h
index 6d1b189be3..6114156920 100644
--- a/Modules/Segmentation/Conversion/include/otbLabelImageToVectorDataFilter.h
+++ b/Modules/Segmentation/Conversion/include/otbLabelImageToVectorDataFilter.h
@@ -112,8 +112,8 @@ protected:
   void GenerateData() override;
 
 private:
-  LabelImageToVectorDataFilter(const Self &);  //purposely not implemented
-  void operator =(const Self&);      //purposely not implemented
+  LabelImageToVectorDataFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   std::string m_FieldName;
   bool m_Use8Connected;
diff --git a/Modules/Segmentation/Conversion/include/otbLabelMapToVectorDataFilter.h b/Modules/Segmentation/Conversion/include/otbLabelMapToVectorDataFilter.h
index 3e17c8983f..d73495a274 100644
--- a/Modules/Segmentation/Conversion/include/otbLabelMapToVectorDataFilter.h
+++ b/Modules/Segmentation/Conversion/include/otbLabelMapToVectorDataFilter.h
@@ -120,8 +120,8 @@ protected:
   void GenerateData() override;
 
 private:
-  LabelMapToVectorDataFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  LabelMapToVectorDataFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   FieldsFunctorType m_FieldsFunctor;
 }; // end of class
diff --git a/Modules/Segmentation/Conversion/include/otbOGRDataSourceToLabelImageFilter.h b/Modules/Segmentation/Conversion/include/otbOGRDataSourceToLabelImageFilter.h
index bec0926d8d..39e612bb81 100644
--- a/Modules/Segmentation/Conversion/include/otbOGRDataSourceToLabelImageFilter.h
+++ b/Modules/Segmentation/Conversion/include/otbOGRDataSourceToLabelImageFilter.h
@@ -150,8 +150,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  OGRDataSourceToLabelImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  OGRDataSourceToLabelImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   std::vector< OGRLayerH >    m_SrcDataSetLayers;
   std::vector<int>            m_BandsToBurn;
diff --git a/Modules/Segmentation/Conversion/include/otbPersistentImageToOGRDataFilter.h b/Modules/Segmentation/Conversion/include/otbPersistentImageToOGRDataFilter.h
index 5155ce3c11..032dd2405b 100644
--- a/Modules/Segmentation/Conversion/include/otbPersistentImageToOGRDataFilter.h
+++ b/Modules/Segmentation/Conversion/include/otbPersistentImageToOGRDataFilter.h
@@ -145,8 +145,8 @@ protected:
 
 
 private:
-  PersistentImageToOGRDataFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PersistentImageToOGRDataFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   virtual OGRDataSourcePointerType ProcessTile() = 0;
 
diff --git a/Modules/Segmentation/Conversion/include/otbPersistentImageToOGRLayerFilter.h b/Modules/Segmentation/Conversion/include/otbPersistentImageToOGRLayerFilter.h
index 98c5760c62..ff28b5449c 100644
--- a/Modules/Segmentation/Conversion/include/otbPersistentImageToOGRLayerFilter.h
+++ b/Modules/Segmentation/Conversion/include/otbPersistentImageToOGRLayerFilter.h
@@ -104,8 +104,8 @@ protected:
 
 
 private:
-  PersistentImageToOGRLayerFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PersistentImageToOGRLayerFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   virtual OGRDataSourcePointerType ProcessTile() = 0;
 
diff --git a/Modules/Segmentation/Conversion/include/otbPersistentImageToVectorDataFilter.h b/Modules/Segmentation/Conversion/include/otbPersistentImageToVectorDataFilter.h
index 3b49caaa61..e5df82c614 100644
--- a/Modules/Segmentation/Conversion/include/otbPersistentImageToVectorDataFilter.h
+++ b/Modules/Segmentation/Conversion/include/otbPersistentImageToVectorDataFilter.h
@@ -109,8 +109,8 @@ protected:
   OutputVectorDataPointerType m_OutputVectorData;
 
 private:
-  PersistentImageToVectorDataFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PersistentImageToVectorDataFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   virtual OutputVectorDataPointerType ProcessTile() = 0;
 
diff --git a/Modules/Segmentation/Conversion/include/otbRasterizeVectorDataFilter.h b/Modules/Segmentation/Conversion/include/otbRasterizeVectorDataFilter.h
index eb197d050f..6048984779 100644
--- a/Modules/Segmentation/Conversion/include/otbRasterizeVectorDataFilter.h
+++ b/Modules/Segmentation/Conversion/include/otbRasterizeVectorDataFilter.h
@@ -152,8 +152,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  RasterizeVectorDataFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  RasterizeVectorDataFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   ogr::version_proxy::GDALDatasetType * m_OGRDataSourcePointer;
 
diff --git a/Modules/Segmentation/Conversion/include/otbVectorDataToLabelImageFilter.h b/Modules/Segmentation/Conversion/include/otbVectorDataToLabelImageFilter.h
index 7f3056a94f..6d4aac742c 100644
--- a/Modules/Segmentation/Conversion/include/otbVectorDataToLabelImageFilter.h
+++ b/Modules/Segmentation/Conversion/include/otbVectorDataToLabelImageFilter.h
@@ -154,8 +154,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  VectorDataToLabelImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  VectorDataToLabelImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   ogr::version_proxy::GDALDatasetType * m_OGRDataSourcePointer;
 
diff --git a/Modules/Segmentation/Conversion/include/otbVectorDataToLabelMapFilter.h b/Modules/Segmentation/Conversion/include/otbVectorDataToLabelMapFilter.h
index 9c3656dd34..405e850eaa 100644
--- a/Modules/Segmentation/Conversion/include/otbVectorDataToLabelMapFilter.h
+++ b/Modules/Segmentation/Conversion/include/otbVectorDataToLabelMapFilter.h
@@ -186,8 +186,8 @@ protected:
 //   void EnlargeOutputRequestedRegion(itk::DataObject *itkNotUsed(output));
 
 private:
-  VectorDataToLabelMapFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VectorDataToLabelMapFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   void ProcessNode(InternalTreeNodeType * source);
 
diff --git a/Modules/Segmentation/Conversion/include/otbVectorDataToLabelMapWithAttributesFilter.h b/Modules/Segmentation/Conversion/include/otbVectorDataToLabelMapWithAttributesFilter.h
index 28a2baec1e..da4e68fa9d 100644
--- a/Modules/Segmentation/Conversion/include/otbVectorDataToLabelMapWithAttributesFilter.h
+++ b/Modules/Segmentation/Conversion/include/otbVectorDataToLabelMapWithAttributesFilter.h
@@ -214,8 +214,8 @@ protected:
   //   void EnlargeOutputRequestedRegion(itk::DataObject *itkNotUsed(output));
 
 private:
-  VectorDataToLabelMapWithAttributesFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  VectorDataToLabelMapWithAttributesFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   void ProcessNode(InternalTreeNodeType * source);
 
diff --git a/Modules/Segmentation/Labelling/include/otbLabelizeConfidenceConnectedImageFilter.h b/Modules/Segmentation/Labelling/include/otbLabelizeConfidenceConnectedImageFilter.h
index be83bcb2a2..f283f54ba2 100644
--- a/Modules/Segmentation/Labelling/include/otbLabelizeConfidenceConnectedImageFilter.h
+++ b/Modules/Segmentation/Labelling/include/otbLabelizeConfidenceConnectedImageFilter.h
@@ -116,8 +116,8 @@ protected:
   void RegionGrowing(const IndexType indexSeed) override;
 
 private:
-  LabelizeConfidenceConnectedImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  LabelizeConfidenceConnectedImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Initial replace value*/
   OutputPixelType m_ReplaceValue;
diff --git a/Modules/Segmentation/Labelling/include/otbLabelizeConnectedThresholdImageFilter.h b/Modules/Segmentation/Labelling/include/otbLabelizeConnectedThresholdImageFilter.h
index 018f343997..7adcf822b4 100644
--- a/Modules/Segmentation/Labelling/include/otbLabelizeConnectedThresholdImageFilter.h
+++ b/Modules/Segmentation/Labelling/include/otbLabelizeConnectedThresholdImageFilter.h
@@ -89,8 +89,8 @@ protected:
   void RegionGrowing(const IndexType indexSeed) override;
 
 private:
-  LabelizeConnectedThresholdImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  LabelizeConnectedThresholdImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Delta + threshold for growing region */
   InputPixelType m_UpperThresholdDelta;
diff --git a/Modules/Segmentation/Labelling/include/otbLabelizeImageFilterBase.h b/Modules/Segmentation/Labelling/include/otbLabelizeImageFilterBase.h
index 1f8b5305bd..8ea03f494e 100644
--- a/Modules/Segmentation/Labelling/include/otbLabelizeImageFilterBase.h
+++ b/Modules/Segmentation/Labelling/include/otbLabelizeImageFilterBase.h
@@ -127,8 +127,8 @@ protected:
   unsigned long m_ObjectCount;
 
 private:
-  LabelizeImageFilterBase(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  LabelizeImageFilterBase(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 }; // end class LabelizeImageFilterBase
 
diff --git a/Modules/Segmentation/Labelling/include/otbLabelizeNeighborhoodConnectedImageFilter.h b/Modules/Segmentation/Labelling/include/otbLabelizeNeighborhoodConnectedImageFilter.h
index 9264ba669e..8bd2f766d8 100644
--- a/Modules/Segmentation/Labelling/include/otbLabelizeNeighborhoodConnectedImageFilter.h
+++ b/Modules/Segmentation/Labelling/include/otbLabelizeNeighborhoodConnectedImageFilter.h
@@ -111,8 +111,8 @@ protected:
   void RegionGrowing(const IndexType indexSeed) override;
 
 private:
-  LabelizeNeighborhoodConnectedImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  LabelizeNeighborhoodConnectedImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Delta + threshold for growing region */
   InputPixelType m_UpperThresholdDelta;
diff --git a/Modules/Segmentation/Labelling/include/otbRelabelComponentImageFilter.h b/Modules/Segmentation/Labelling/include/otbRelabelComponentImageFilter.h
index 0915ac1bd9..9b01f4b315 100644
--- a/Modules/Segmentation/Labelling/include/otbRelabelComponentImageFilter.h
+++ b/Modules/Segmentation/Labelling/include/otbRelabelComponentImageFilter.h
@@ -146,8 +146,8 @@ protected:
   void EnlargeOutputRequestedRegion(itk::DataObject *){};
 
 private:
-  RelabelComponentImageFilter(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  RelabelComponentImageFilter(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
 };
 
diff --git a/Modules/Segmentation/MeanShift/include/otbMeanShiftSegmentationFilter.h b/Modules/Segmentation/MeanShift/include/otbMeanShiftSegmentationFilter.h
index 03c19157eb..992e777297 100644
--- a/Modules/Segmentation/MeanShift/include/otbMeanShiftSegmentationFilter.h
+++ b/Modules/Segmentation/MeanShift/include/otbMeanShiftSegmentationFilter.h
@@ -67,8 +67,8 @@ public:
 
 private:
 
-  ConnectedLabelFunctor(const Self &); //purposely not implemented
-  void operator =(const Self &); //purposely not implemented
+  ConnectedLabelFunctor(const Self &) = delete;
+  void operator =(const Self &) = delete;
 
 };
 
diff --git a/Modules/Segmentation/MorphologicalProfiles/include/otbClosingOpeningMorphologicalFilter.h b/Modules/Segmentation/MorphologicalProfiles/include/otbClosingOpeningMorphologicalFilter.h
index f1d5e29ae6..3805d42514 100644
--- a/Modules/Segmentation/MorphologicalProfiles/include/otbClosingOpeningMorphologicalFilter.h
+++ b/Modules/Segmentation/MorphologicalProfiles/include/otbClosingOpeningMorphologicalFilter.h
@@ -90,8 +90,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ClosingOpeningMorphologicalFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ClosingOpeningMorphologicalFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
   /** Morphological operation kernel  */
   KernelType m_Kernel;
 };
diff --git a/Modules/Segmentation/MorphologicalProfiles/include/otbConvexOrConcaveClassificationFilter.h b/Modules/Segmentation/MorphologicalProfiles/include/otbConvexOrConcaveClassificationFilter.h
index dcd0f39432..afd4bc3d70 100644
--- a/Modules/Segmentation/MorphologicalProfiles/include/otbConvexOrConcaveClassificationFilter.h
+++ b/Modules/Segmentation/MorphologicalProfiles/include/otbConvexOrConcaveClassificationFilter.h
@@ -272,8 +272,8 @@ protected:
   }
 
 private:
-  ConvexOrConcaveClassificationFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ConvexOrConcaveClassificationFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Label of the convex class */
   LabelType m_ConvexLabel;
diff --git a/Modules/Segmentation/MorphologicalProfiles/include/otbGeodesicMorphologyDecompositionImageFilter.h b/Modules/Segmentation/MorphologicalProfiles/include/otbGeodesicMorphologyDecompositionImageFilter.h
index d2e77b8772..e06bc3c886 100644
--- a/Modules/Segmentation/MorphologicalProfiles/include/otbGeodesicMorphologyDecompositionImageFilter.h
+++ b/Modules/Segmentation/MorphologicalProfiles/include/otbGeodesicMorphologyDecompositionImageFilter.h
@@ -158,8 +158,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  GeodesicMorphologyDecompositionImageFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  GeodesicMorphologyDecompositionImageFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Radius of the structuring element */
   RadiusType m_Radius;
diff --git a/Modules/Segmentation/MorphologicalProfiles/include/otbGeodesicMorphologyLevelingFilter.h b/Modules/Segmentation/MorphologicalProfiles/include/otbGeodesicMorphologyLevelingFilter.h
index 6211c59697..c0e57a2343 100644
--- a/Modules/Segmentation/MorphologicalProfiles/include/otbGeodesicMorphologyLevelingFilter.h
+++ b/Modules/Segmentation/MorphologicalProfiles/include/otbGeodesicMorphologyLevelingFilter.h
@@ -134,8 +134,8 @@ protected:
   }
 
 private:
-  GeodesicMorphologyLevelingFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  GeodesicMorphologyLevelingFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 } // End namespace otb
 #endif
diff --git a/Modules/Segmentation/MorphologicalProfiles/include/otbImageToProfileFilter.h b/Modules/Segmentation/MorphologicalProfiles/include/otbImageToProfileFilter.h
index 85223e736c..d8c0718291 100644
--- a/Modules/Segmentation/MorphologicalProfiles/include/otbImageToProfileFilter.h
+++ b/Modules/Segmentation/MorphologicalProfiles/include/otbImageToProfileFilter.h
@@ -104,8 +104,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ImageToProfileFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ImageToProfileFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** The filter used to compute the profile */
   FilterPointerType m_Filter;
diff --git a/Modules/Segmentation/MorphologicalProfiles/include/otbMorphologicalClosingProfileFilter.h b/Modules/Segmentation/MorphologicalProfiles/include/otbMorphologicalClosingProfileFilter.h
index a5af964287..151dca67a3 100644
--- a/Modules/Segmentation/MorphologicalProfiles/include/otbMorphologicalClosingProfileFilter.h
+++ b/Modules/Segmentation/MorphologicalProfiles/include/otbMorphologicalClosingProfileFilter.h
@@ -95,8 +95,8 @@ protected:
   }
 
 private:
-  MorphologicalClosingProfileFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  MorphologicalClosingProfileFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 } // End namespace otb
 #endif
diff --git a/Modules/Segmentation/MorphologicalProfiles/include/otbMorphologicalOpeningProfileFilter.h b/Modules/Segmentation/MorphologicalProfiles/include/otbMorphologicalOpeningProfileFilter.h
index 2c8d5bdbbf..3b9668b04a 100644
--- a/Modules/Segmentation/MorphologicalProfiles/include/otbMorphologicalOpeningProfileFilter.h
+++ b/Modules/Segmentation/MorphologicalProfiles/include/otbMorphologicalOpeningProfileFilter.h
@@ -95,8 +95,8 @@ protected:
   }
 
 private:
-  MorphologicalOpeningProfileFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  MorphologicalOpeningProfileFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 } // End namespace otb
 #endif
diff --git a/Modules/Segmentation/MorphologicalProfiles/include/otbMultiScaleConvexOrConcaveClassificationFilter.h b/Modules/Segmentation/MorphologicalProfiles/include/otbMultiScaleConvexOrConcaveClassificationFilter.h
index bcb21040a6..fc23f5a6a9 100644
--- a/Modules/Segmentation/MorphologicalProfiles/include/otbMultiScaleConvexOrConcaveClassificationFilter.h
+++ b/Modules/Segmentation/MorphologicalProfiles/include/otbMultiScaleConvexOrConcaveClassificationFilter.h
@@ -246,8 +246,8 @@ protected:
   }
 
 private:
-  MultiScaleConvexOrConcaveClassificationFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  MultiScaleConvexOrConcaveClassificationFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Label separator between convex and concave labels */
   LabelType m_LabelSeparator;
diff --git a/Modules/Segmentation/MorphologicalProfiles/include/otbOpeningClosingMorphologicalFilter.h b/Modules/Segmentation/MorphologicalProfiles/include/otbOpeningClosingMorphologicalFilter.h
index 4e69011508..7cd8ef6b6e 100644
--- a/Modules/Segmentation/MorphologicalProfiles/include/otbOpeningClosingMorphologicalFilter.h
+++ b/Modules/Segmentation/MorphologicalProfiles/include/otbOpeningClosingMorphologicalFilter.h
@@ -90,8 +90,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  OpeningClosingMorphologicalFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  OpeningClosingMorphologicalFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
   /** Morphological operation kernel  */
   KernelType m_Kernel;
 };
diff --git a/Modules/Segmentation/MorphologicalProfiles/include/otbProfileDerivativeToMultiScaleCharacteristicsFilter.h b/Modules/Segmentation/MorphologicalProfiles/include/otbProfileDerivativeToMultiScaleCharacteristicsFilter.h
index 805070251d..489773f83a 100644
--- a/Modules/Segmentation/MorphologicalProfiles/include/otbProfileDerivativeToMultiScaleCharacteristicsFilter.h
+++ b/Modules/Segmentation/MorphologicalProfiles/include/otbProfileDerivativeToMultiScaleCharacteristicsFilter.h
@@ -108,8 +108,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ProfileDerivativeToMultiScaleCharacteristicsFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ProfileDerivativeToMultiScaleCharacteristicsFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** The initial value of the profile */
   LabeledPixelType m_InitialValue;
diff --git a/Modules/Segmentation/MorphologicalProfiles/include/otbProfileToProfileDerivativeFilter.h b/Modules/Segmentation/MorphologicalProfiles/include/otbProfileToProfileDerivativeFilter.h
index cef78cc730..6d292404b1 100644
--- a/Modules/Segmentation/MorphologicalProfiles/include/otbProfileToProfileDerivativeFilter.h
+++ b/Modules/Segmentation/MorphologicalProfiles/include/otbProfileToProfileDerivativeFilter.h
@@ -94,8 +94,8 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const override;
 
 private:
-  ProfileToProfileDerivativeFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ProfileToProfileDerivativeFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   /** Subtract filter for the dervivative */
   SubtractFilterPointerType m_SubtractFilter;
diff --git a/Modules/Segmentation/OGRProcessing/include/otbOGRLayerStreamStitchingFilter.h b/Modules/Segmentation/OGRProcessing/include/otbOGRLayerStreamStitchingFilter.h
index 9149fbf213..e1b35d1d12 100644
--- a/Modules/Segmentation/OGRProcessing/include/otbOGRLayerStreamStitchingFilter.h
+++ b/Modules/Segmentation/OGRProcessing/include/otbOGRLayerStreamStitchingFilter.h
@@ -143,8 +143,8 @@ protected:
   double GetLengthOGRGeometryCollection(OGRGeometryCollection * intersection);
 
 private:
-  OGRLayerStreamStitchingFilter(const Self &);  //purposely not implemented
-  void operator =(const Self&);      //purposely not implemented
+  OGRLayerStreamStitchingFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   SizeType m_StreamSize;
   unsigned int m_Radius;
diff --git a/Modules/Segmentation/OGRProcessing/include/otbStreamingImageToOGRLayerSegmentationFilter.h b/Modules/Segmentation/OGRProcessing/include/otbStreamingImageToOGRLayerSegmentationFilter.h
index f797bafee2..0a908dd9d2 100644
--- a/Modules/Segmentation/OGRProcessing/include/otbStreamingImageToOGRLayerSegmentationFilter.h
+++ b/Modules/Segmentation/OGRProcessing/include/otbStreamingImageToOGRLayerSegmentationFilter.h
@@ -148,8 +148,8 @@ protected:
 
 
 private:
-  PersistentImageToOGRLayerSegmentationFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  PersistentImageToOGRLayerSegmentationFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   OGRDataSourcePointerType ProcessTile() override;
 
@@ -352,8 +352,8 @@ protected:
   ~StreamingImageToOGRLayerSegmentationFilter() override {}
 
 private:
-  StreamingImageToOGRLayerSegmentationFilter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  StreamingImageToOGRLayerSegmentationFilter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 };
 
 
diff --git a/Modules/ThirdParty/ITK/include/itkImageRegionMultidimensionalSplitter.h b/Modules/ThirdParty/ITK/include/itkImageRegionMultidimensionalSplitter.h
index 232f296495..8f4282d183 100644
--- a/Modules/ThirdParty/ITK/include/itkImageRegionMultidimensionalSplitter.h
+++ b/Modules/ThirdParty/ITK/include/itkImageRegionMultidimensionalSplitter.h
@@ -111,8 +111,8 @@ protected:
   void PrintSelf(std::ostream & os, Indent indent) const;
 
 private:
-  ImageRegionMultidimensionalSplitter(const Self &); //purposely not implemented
-  void operator=(const Self &);                      //purposely not implemented
+  ImageRegionMultidimensionalSplitter(const Self &) = delete;
+  void operator=(const Self &) = delete;
 
   static unsigned int ComputeSplits(unsigned int numberOfPieces,
                                     const RegionType &region,
diff --git a/Modules/ThirdParty/ITK/include/itkImageRegionSplitter.h b/Modules/ThirdParty/ITK/include/itkImageRegionSplitter.h
index 13fc872f86..8b0b7632d4 100644
--- a/Modules/ThirdParty/ITK/include/itkImageRegionSplitter.h
+++ b/Modules/ThirdParty/ITK/include/itkImageRegionSplitter.h
@@ -169,8 +169,8 @@ protected:
   void PrintSelf(std::ostream & os, Indent indent) const override;
 
 private:
-  ImageRegionSplitter(const ImageRegionSplitter &); //purposely not implemented
-  void operator=(const ImageRegionSplitter &);      //purposely not implemented
+  ImageRegionSplitter(const ImageRegionSplitter &) = delete;
+  void operator=(const ImageRegionSplitter &) = delete;
 };
 } // end namespace itk
 
diff --git a/Modules/ThirdParty/ITK/include/itkTransformToDisplacementFieldSource.h b/Modules/ThirdParty/ITK/include/itkTransformToDisplacementFieldSource.h
index 2a9b77c394..6ec8b37227 100644
--- a/Modules/ThirdParty/ITK/include/itkTransformToDisplacementFieldSource.h
+++ b/Modules/ThirdParty/ITK/include/itkTransformToDisplacementFieldSource.h
@@ -200,8 +200,8 @@ protected:
 
 private:
 
-  TransformToDisplacementFieldSource(const Self &); //purposely not implemented
-  void operator=(const Self &);                    //purposely not implemented
+  TransformToDisplacementFieldSource(const Self &) = delete;
+  void operator=(const Self &) = delete;
 
   /** Member variables. */
   RegionType           m_OutputRegion;    // region of the output image
diff --git a/Modules/ThirdParty/ITK/include/itkUnaryFunctorImageFilter.h b/Modules/ThirdParty/ITK/include/itkUnaryFunctorImageFilter.h
index 8e268752d5..694cb0297b 100644
--- a/Modules/ThirdParty/ITK/include/itkUnaryFunctorImageFilter.h
+++ b/Modules/ThirdParty/ITK/include/itkUnaryFunctorImageFilter.h
@@ -128,8 +128,8 @@ protected:
                             ThreadIdType threadId) override;
 
 private:
-  UnaryFunctorImageFilter(const Self &); //purposely not implemented
-  void operator=(const Self &);          //purposely not implemented
+  UnaryFunctorImageFilter(const Self &) = delete;
+  void operator=(const Self &) = delete;
 
   FunctorType m_Functor;
 };
diff --git a/Modules/Visualization/MonteverdiGui/include/mvdQtWidgetView.h b/Modules/Visualization/MonteverdiGui/include/mvdQtWidgetView.h
index bec337749c..458d61fef6 100644
--- a/Modules/Visualization/MonteverdiGui/include/mvdQtWidgetView.h
+++ b/Modules/Visualization/MonteverdiGui/include/mvdQtWidgetView.h
@@ -131,8 +131,8 @@ protected slots:
 // Private methods.
 private:
 
-  QtWidgetView(const QtWidgetView&); //purposely not implemented
-  void operator=(const QtWidgetView&); //purposely not implemented
+  QtWidgetView(const QtWidgetView&) = delete;
+  void operator=(const QtWidgetView&) = delete;
 
   /**
    */
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperAbstractParameterList.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperAbstractParameterList.h
index 94a0c2896e..4884c3ae65 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperAbstractParameterList.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperAbstractParameterList.h
@@ -68,8 +68,8 @@ protected:
 //
 // Private methods.
 private:
-  AbstractParameterList( const Parameter & ) = delete; // purposely not implemented
-  void operator = ( const Parameter & ) = delete; // purposely not implemented
+  AbstractParameterList( const Parameter & ) = delete = delete;
+  void operator = ( const Parameter & ) = delete = delete;
 
 //
 // Protected methods.
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplication.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplication.h
index 421ef9a4a7..0894f663e6 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplication.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplication.h
@@ -1092,8 +1092,8 @@ private:
 
   virtual void DoFreeRessources(){};
 
-  Application(const Application &); //purposely not implemented
-  void operator =(const Application&); //purposely not implemented
+  Application(const Application &) = delete;
+  void operator =(const Application&) = delete;
 
   std::string                       m_Name;
   std::string                       m_Description;
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplicationFactory.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplicationFactory.h
index f0461e2982..fbbee11b24 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplicationFactory.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplicationFactory.h
@@ -107,8 +107,8 @@ protected:
   }
 
 private:
-  ApplicationFactory(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ApplicationFactory(const Self &) = delete;
+  void operator =(const Self&) = delete;
   
   std::string m_ClassName;
 };
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplicationFactoryBase.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplicationFactoryBase.h
index 2012736f81..2f88ef7957 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplicationFactoryBase.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplicationFactoryBase.h
@@ -51,8 +51,8 @@ protected:
   ~ApplicationFactoryBase() override{}
 
 private:
-  ApplicationFactoryBase(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ApplicationFactoryBase(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
 };
 
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplicationHtmlDocGenerator.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplicationHtmlDocGenerator.h
index 32dfbc4e77..568d88e50a 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplicationHtmlDocGenerator.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplicationHtmlDocGenerator.h
@@ -74,8 +74,8 @@ protected:
 
 
 private:
-  ApplicationHtmlDocGenerator(const ApplicationHtmlDocGenerator &); //purposely not implemented
-  void operator =(const ApplicationHtmlDocGenerator&); //purposely not implemented
+  ApplicationHtmlDocGenerator(const ApplicationHtmlDocGenerator &) = delete;
+  void operator =(const ApplicationHtmlDocGenerator&) = delete;
 
 }; // End class InputImage Parameter
 
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplicationRegistry.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplicationRegistry.h
index b31c8ed3b0..181f7adf63 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplicationRegistry.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplicationRegistry.h
@@ -82,8 +82,8 @@ protected:
   ~ApplicationRegistry() override;
 
 private:
-  ApplicationRegistry(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  ApplicationRegistry(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   /** Load an application from a shared library */
   static Application::Pointer LoadApplicationFromPath(std::string path,std::string name);
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperChoiceParameter.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperChoiceParameter.h
index b2bd1d55f7..93099da0eb 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperChoiceParameter.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperChoiceParameter.h
@@ -122,8 +122,8 @@ protected:
   unsigned int m_CurrentChoice;
 
 private:
-  ChoiceParameter(const ChoiceParameter &); //purposely not implemented
-  void operator =(const ChoiceParameter&); //purposely not implemented
+  ChoiceParameter(const ChoiceParameter &) = delete;
+  void operator =(const ChoiceParameter&) = delete;
 
 }; // End class Parameter
 
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperComplexInputImageParameter.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperComplexInputImageParameter.h
index 6cf2b6c34c..79b714a22b 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperComplexInputImageParameter.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperComplexInputImageParameter.h
@@ -128,8 +128,8 @@ protected:
   itk::ProcessObject::Pointer m_Caster;
 
 private:
-  ComplexInputImageParameter(const Parameter &); //purposely not implemented
-  void operator =(const Parameter&); //purposely not implemented
+  ComplexInputImageParameter(const Parameter &) = delete;
+  void operator =(const Parameter&) = delete;
 
   /** Store the loaded image filename */
   std::string m_PreviousFileName;
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperComplexOutputImageParameter.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperComplexOutputImageParameter.h
index 2dcfa3ddd2..05eb949a62 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperComplexOutputImageParameter.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperComplexOutputImageParameter.h
@@ -137,8 +137,8 @@ protected:
 
 
 private:
-  ComplexOutputImageParameter(const Parameter &); //purposely not implemented
-  void operator =(const Parameter&); //purposely not implemented
+  ComplexOutputImageParameter(const Parameter &) = delete;
+  void operator =(const Parameter&) = delete;
 
   unsigned int                  m_RAMValue;
 
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperCompositeApplication.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperCompositeApplication.h
index 49c46aef40..d478999eec 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperCompositeApplication.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperCompositeApplication.h
@@ -144,8 +144,8 @@ protected:
   void UpdateInternalParameters(std::string key);
 
 private:
-  CompositeApplication(const CompositeApplication &); //purposely not implemented
-  void operator =(const CompositeApplication&); //purposely not implemented
+  CompositeApplication(const CompositeApplication &) = delete;
+  void operator =(const CompositeApplication&) = delete;
 
   InternalAppContainer m_AppContainer;
 
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperDirectoryParameter.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperDirectoryParameter.h
index 9e461109d9..e7c41235d8 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperDirectoryParameter.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperDirectoryParameter.h
@@ -89,7 +89,7 @@ protected:
   {}
 
 private:
-  DirectoryParameter(const DirectoryParameter &); //purposely not implemented
+  DirectoryParameter(const DirectoryParameter &) = delete;
   void operator =(const DirectoryParameter&); //purposely not
                                               //implemented
 
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperDocExampleStructure.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperDocExampleStructure.h
index c8bdf7a960..fca5cf85bd 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperDocExampleStructure.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperDocExampleStructure.h
@@ -123,8 +123,8 @@ protected:
   ~DocExampleStructure() override;
 
 private:
-  DocExampleStructure(const DocExampleStructure &); //purposely not implemented
-  void operator =(const DocExampleStructure&); //purposely not implemented
+  DocExampleStructure(const DocExampleStructure &) = delete;
+  void operator =(const DocExampleStructure&) = delete;
 
   /** List of the application parameters. List of key/name/value couples. */
   ParametersVectorOfVectorType m_ParameterList;
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperEmptyParameter.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperEmptyParameter.h
index a6845b1dce..a71cad06ba 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperEmptyParameter.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperEmptyParameter.h
@@ -75,8 +75,8 @@ protected:
   {}
 
 private:
-  EmptyParameter(const EmptyParameter &); //purposely not implemented
-  void operator =(const EmptyParameter&); //purposely not implemented
+  EmptyParameter(const EmptyParameter &) = delete;
+  void operator =(const EmptyParameter&) = delete;
 
 }; // End class Parameter
 
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputFilenameListParameter.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputFilenameListParameter.h
index 61e1dd605d..5b14028b31 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputFilenameListParameter.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputFilenameListParameter.h
@@ -93,8 +93,8 @@ protected:
 //
 // Private methods.
 private:
-  InputFilenameListParameter( const Parameter & ); //purposely not implemented
-  void operator = ( const Parameter & ); //purposely not implemented
+  InputFilenameListParameter( const Parameter & ) = delete;
+  void operator = ( const Parameter & ) = delete;
 
 }; // End class InputFilenameList Parameter
 
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputFilenameParameter.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputFilenameParameter.h
index 2fafb3ecd5..adce47bd0b 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputFilenameParameter.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputFilenameParameter.h
@@ -89,7 +89,7 @@ protected:
   {}
 
 private:
-  InputFilenameParameter(const InputFilenameParameter &); //purposely not implemented
+  InputFilenameParameter(const InputFilenameParameter &) = delete;
   void operator =(const InputFilenameParameter&); //purposely not
                                                   //implemented
 
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputImageListParameter.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputImageListParameter.h
index 914ab7b249..edde6817d6 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputImageListParameter.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputImageListParameter.h
@@ -107,8 +107,8 @@ protected:
 //
 // Private methods.
 private:
-  InputImageListParameter( const Parameter & ); //purposely not implemented
-  void operator = ( const Parameter & ); //purposely not implemented
+  InputImageListParameter( const Parameter & ) = delete;
+  void operator = ( const Parameter & ) = delete;
 
   InputImageParameter::Pointer
     FromImage( ImageBaseType * );
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputImageParameter.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputImageParameter.h
index 29b9ac2866..eb64c66a8a 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputImageParameter.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputImageParameter.h
@@ -156,8 +156,8 @@ protected:
   itk::ProcessObject::Pointer m_Caster;
 
 private:
-  InputImageParameter(const Parameter &); //purposely not implemented
-  void operator =(const Parameter&); //purposely not implemented
+  InputImageParameter(const Parameter &) = delete;
+  void operator =(const Parameter&) = delete;
 
   /** Store the loaded image filename */
   std::string m_PreviousFileName;
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputProcessXMLParameter.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputProcessXMLParameter.h
index b896b7f23d..b16eacea2f 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputProcessXMLParameter.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputProcessXMLParameter.h
@@ -92,8 +92,8 @@ private:
 
   std::string    m_FileName;
 
-  InputProcessXMLParameter(const InputProcessXMLParameter &); //purposely not implemented
-  void operator =(const InputProcessXMLParameter&); //purposely not implemented
+  InputProcessXMLParameter(const InputProcessXMLParameter &) = delete;
+  void operator =(const InputProcessXMLParameter&) = delete;
 
 
 }; // End class Parameter
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputVectorDataListParameter.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputVectorDataListParameter.h
index 52d4ac37ea..cb6167a7b9 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputVectorDataListParameter.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputVectorDataListParameter.h
@@ -99,11 +99,8 @@ protected:
 		const std::string & ) const override;
 
 private:
-  // Purposely not implemented
-  InputVectorDataListParameter( const Parameter & );
-
-  // Purposely not implemented
-  void operator = ( const Parameter & );
+  InputVectorDataListParameter( const Parameter & ) = delete;
+  void operator = ( const Parameter & ) = delete;
 
   InputVectorDataParameter::Pointer
     FromVectorData( VectorDataType * );
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputVectorDataParameter.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputVectorDataParameter.h
index 9442815771..73d2d795fd 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputVectorDataParameter.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputVectorDataParameter.h
@@ -82,8 +82,8 @@ protected:
   std::string m_PreviousFileName;
 
 private:
-  InputVectorDataParameter(const Parameter &); //purposely not implemented
-  void operator =(const Parameter&); //purposely not implemented
+  InputVectorDataParameter(const Parameter &) = delete;
+  void operator =(const Parameter&) = delete;
 
 };
 
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperListViewParameter.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperListViewParameter.h
index aa5e3feb57..5508d39c35 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperListViewParameter.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperListViewParameter.h
@@ -174,8 +174,8 @@ protected:
   bool                                m_SingleSelection;
 
 private:
-  ListViewParameter(const ListViewParameter &); //purposely not implemented
-  void operator =(const ListViewParameter&); //purposely not implemented
+  ListViewParameter(const ListViewParameter &) = delete;
+  void operator =(const ListViewParameter&) = delete;
 
 }; // End class Parameter
 
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperNumericalParameter.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperNumericalParameter.h
index 54871040f3..8598b4ccd8 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperNumericalParameter.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperNumericalParameter.h
@@ -141,8 +141,8 @@ protected:
   ScalarType m_MaximumValue;
 
 private:
-  NumericalParameter(const Parameter &); //purposely not implemented
-  void operator =(const Parameter&); //purposely not implemented
+  NumericalParameter(const Parameter &) = delete;
+  void operator =(const Parameter&) = delete;
 
 }; // End class Numerical Parameter
 
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperOutputFilenameParameter.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperOutputFilenameParameter.h
index a528a39927..17823d0907 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperOutputFilenameParameter.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperOutputFilenameParameter.h
@@ -89,7 +89,7 @@ protected:
   {}
 
 private:
-  OutputFilenameParameter(const OutputFilenameParameter &); //purposely not implemented
+  OutputFilenameParameter(const OutputFilenameParameter &) = delete;
   void operator =(const OutputFilenameParameter&); //purposely not
                                                   //implemented
 
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperOutputImageParameter.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperOutputImageParameter.h
index eac7df4cad..e7a4babf30 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperOutputImageParameter.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperOutputImageParameter.h
@@ -127,8 +127,8 @@ protected:
   ImagePixelType         m_DefaultPixelType;
 
 private:
-  OutputImageParameter(const Parameter &); //purposely not implemented
-  void operator =(const Parameter&); //purposely not implemented
+  OutputImageParameter(const Parameter &) = delete;
+  void operator =(const Parameter&) = delete;
 
   unsigned int                  m_RAMValue;
 
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperOutputProcessXMLParameter.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperOutputProcessXMLParameter.h
index d870ee8023..f0db1726fd 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperOutputProcessXMLParameter.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperOutputProcessXMLParameter.h
@@ -109,8 +109,8 @@ private:
   /** Temporary pointer to the application to parse (internal) */
   Application::Pointer m_Appli;
 
-  OutputProcessXMLParameter(const OutputProcessXMLParameter &); //purposely not implemented
-  void operator =(const OutputProcessXMLParameter&); //purposely not implemented
+  OutputProcessXMLParameter(const OutputProcessXMLParameter &) = delete;
+  void operator =(const OutputProcessXMLParameter&) = delete;
 
 
 }; // End class Parameter
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperOutputVectorDataParameter.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperOutputVectorDataParameter.h
index d1b9c31d37..1987cd1606 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperOutputVectorDataParameter.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperOutputVectorDataParameter.h
@@ -126,8 +126,8 @@ protected:
   otb::VectorDataFileWriter<VectorDataType>::Pointer m_Writer;
 
 private:
-  OutputVectorDataParameter(const Parameter &); //purposely not implemented
-  void operator =(const Parameter&); //purposely not implemented
+  OutputVectorDataParameter(const Parameter &) = delete;
+  void operator =(const Parameter&) = delete;
 
 };
 
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperParameter.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperParameter.h
index 7b997afc58..156449c48e 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperParameter.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperParameter.h
@@ -235,8 +235,8 @@ protected:
   std::vector<Parameter::Pointer >   m_ChildrenList;
 
 private:
-  Parameter(const Parameter &); //purposely not implemented
-  void operator =(const Parameter&); //purposely not implemented
+  Parameter(const Parameter &) = delete;
+  void operator =(const Parameter&) = delete;
 
 }; // End class Parameter
 
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperParameterGroup.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperParameterGroup.h
index 36c8240990..a4af999cb1 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperParameterGroup.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperParameterGroup.h
@@ -112,8 +112,8 @@ protected:
   ParameterListType m_ParameterList;
 
 private:
-  ParameterGroup(const ParameterGroup &); //purposely not implemented
-  void operator =(const ParameterGroup&); //purposely not implemented
+  ParameterGroup(const ParameterGroup &) = delete;
+  void operator =(const ParameterGroup&) = delete;
 
 };
 
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperParameterKey.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperParameterKey.h
index 5501333ef0..4d0de6c770 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperParameterKey.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperParameterKey.h
@@ -113,8 +113,8 @@ last() : return "tata"
     }
 
 private:
-  ParameterKey(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  ParameterKey(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
   std::string m_Key;
 
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperParameterList.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperParameterList.h
index e54590e42f..90665af66b 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperParameterList.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperParameterList.h
@@ -130,8 +130,8 @@ protected:
 //
 // Private methods.
 private:
-  // ParameterList( const Parameter & ); // purposely not implemented
-  // void operator = ( const Parameter & ); // purposely not implemented
+  // ParameterList( const Parameter & ) = delete;
+  // void operator = ( const Parameter & ) = delete;
 
 //
 // Protected methods.
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperProxyParameter.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperProxyParameter.h
index 1bc45bbd74..0cb7482973 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperProxyParameter.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperProxyParameter.h
@@ -80,8 +80,8 @@ protected:
   ~ProxyParameter() override {}
 
 private:
-  ProxyParameter(const Self &); //purposely not implemented
-  void operator =(const Self&); //purposely not implemented
+  ProxyParameter(const Self &) = delete;
+  void operator =(const Self&) = delete;
 
   ProxyTargetType m_Target;
 };
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperRAMParameter.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperRAMParameter.h
index e9c4fb97d5..72f9393ea9 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperRAMParameter.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperRAMParameter.h
@@ -111,8 +111,8 @@ protected:
   {}
 
 private:
-  RAMParameter(const RAMParameter &); //purposely not implemented
-  void operator =(const RAMParameter&); //purposely not implemented
+  RAMParameter(const RAMParameter &) = delete;
+  void operator =(const RAMParameter&) = delete;
 
   UnsignedIntParameter::Pointer         m_UnsignedIntParam;
 };
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperRadiusParameter.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperRadiusParameter.h
index 020e647bbf..7fa2129bf6 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperRadiusParameter.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperRadiusParameter.h
@@ -68,8 +68,8 @@ protected:
   {}
 
 private:
-  RadiusParameter(const RadiusParameter &); //purposely not implemented
-  void operator =(const RadiusParameter&); //purposely not implemented
+  RadiusParameter(const RadiusParameter &) = delete;
+  void operator =(const RadiusParameter&) = delete;
 
 };
 
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperStringListParameter.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperStringListParameter.h
index a01a11db2f..0ea3f104d2 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperStringListParameter.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperStringListParameter.h
@@ -101,11 +101,9 @@ protected:
 //
 // Private methods.
 private:
-  // Purposely not implemented
-  StringListParameter ( const StringListParameter & );
+  StringListParameter ( const StringListParameter & ) = delete;
 
-  // Purposely not implemented
-  void operator = ( const StringListParameter & );
+  void operator = ( const StringListParameter & ) = delete;
 
 }; // End class Parameter
 
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperStringParameter.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperStringParameter.h
index 861e0b428c..f6cb071e39 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperStringParameter.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperStringParameter.h
@@ -85,8 +85,8 @@ protected:
   std::string  m_Value;
 
 private:
-  StringParameter(const StringParameter &); //purposely not implemented
-  void operator =(const StringParameter&); //purposely not implemented
+  StringParameter(const StringParameter &) = delete;
+  void operator =(const StringParameter&) = delete;
 
 }; // End class Parameter
 
diff --git a/Modules/Wrappers/CommandLine/include/otbWrapperCommandLineLauncher.h b/Modules/Wrappers/CommandLine/include/otbWrapperCommandLineLauncher.h
index 51b76e9b0b..120c4ea4f6 100644
--- a/Modules/Wrappers/CommandLine/include/otbWrapperCommandLineLauncher.h
+++ b/Modules/Wrappers/CommandLine/include/otbWrapperCommandLineLauncher.h
@@ -169,8 +169,8 @@ protected:
 
 private:
 
-  CommandLineLauncher(const CommandLineLauncher &); //purposely not implemented
-  void operator =(const CommandLineLauncher&); //purposely not implemented
+  CommandLineLauncher(const CommandLineLauncher &) = delete;
+  void operator =(const CommandLineLauncher&) = delete;
 
   std::string                       m_Path;
 
diff --git a/Modules/Wrappers/CommandLine/include/otbWrapperCommandLineParser.h b/Modules/Wrappers/CommandLine/include/otbWrapperCommandLineParser.h
index 9f35a7b892..98d15d1284 100644
--- a/Modules/Wrappers/CommandLine/include/otbWrapperCommandLineParser.h
+++ b/Modules/Wrappers/CommandLine/include/otbWrapperCommandLineParser.h
@@ -93,8 +93,8 @@ protected:
   ~CommandLineParser() override;
 
 private:
-  CommandLineParser(const CommandLineParser &); //purposely not implemented
-  void operator =(const CommandLineParser&); //purposely not implemented
+  CommandLineParser(const CommandLineParser &) = delete;
+  void operator =(const CommandLineParser&) = delete;
 
 
   /** Return true if the found key is valid : not a number */
diff --git a/Modules/Wrappers/QtWidget/include/otbQtFileSelectionWidget.h b/Modules/Wrappers/QtWidget/include/otbQtFileSelectionWidget.h
index a5fdfd5543..ca79f6edb4 100644
--- a/Modules/Wrappers/QtWidget/include/otbQtFileSelectionWidget.h
+++ b/Modules/Wrappers/QtWidget/include/otbQtFileSelectionWidget.h
@@ -90,8 +90,8 @@ protected slots:
   void SetFileName(const QString &);
 
 private:
-  QtFileSelectionWidget(const QtFileSelectionWidget&); //purposely not implemented
-  void operator=(const QtFileSelectionWidget&); //purposely not implemented
+  QtFileSelectionWidget(const QtFileSelectionWidget&) = delete;
+  void operator=(const QtFileSelectionWidget&) = delete;
 
   virtual void DoCreateWidget();
 
diff --git a/Modules/Wrappers/QtWidget/include/otbQtStringSelectionWidget.h b/Modules/Wrappers/QtWidget/include/otbQtStringSelectionWidget.h
index fc8bbd382c..5602e7bb9f 100644
--- a/Modules/Wrappers/QtWidget/include/otbQtStringSelectionWidget.h
+++ b/Modules/Wrappers/QtWidget/include/otbQtStringSelectionWidget.h
@@ -86,8 +86,8 @@ protected slots:
    void OnEditionFinished();
 
 private:
-  QtStringSelectionWidget(const QtStringSelectionWidget&); //purposely not implemented
-  void operator=(const QtStringSelectionWidget&); //purposely not implemented
+  QtStringSelectionWidget(const QtStringSelectionWidget&) = delete;
+  void operator=(const QtStringSelectionWidget&) = delete;
 
   virtual void DoCreateWidget();
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetChoiceParameter.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetChoiceParameter.h
index 345c6e59ce..97d32f2883 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetChoiceParameter.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetChoiceParameter.h
@@ -48,8 +48,8 @@ protected slots:
   void SetValue( int value );
 
 private:
-  QtWidgetChoiceParameter(const QtWidgetChoiceParameter&); //purposely not implemented
-  void operator=(const QtWidgetChoiceParameter&); //purposely not implemented
+  QtWidgetChoiceParameter(const QtWidgetChoiceParameter&) = delete;
+  void operator=(const QtWidgetChoiceParameter&) = delete;
 
   void DoCreateWidget() override;
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetComplexInputImageParameter.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetComplexInputImageParameter.h
index 02a76fd978..ba72e57f7b 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetComplexInputImageParameter.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetComplexInputImageParameter.h
@@ -53,8 +53,8 @@ protected slots:
   void SelectFile();
 
 private:
-  QtWidgetComplexInputImageParameter(const QtWidgetComplexInputImageParameter&); //purposely not implemented
-  void operator=(const QtWidgetComplexInputImageParameter&); //purposely not implemented
+  QtWidgetComplexInputImageParameter(const QtWidgetComplexInputImageParameter&) = delete;
+  void operator=(const QtWidgetComplexInputImageParameter&) = delete;
 
   void DoCreateWidget() override;
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetComplexOutputImageParameter.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetComplexOutputImageParameter.h
index ed964c1826..2602fe49ad 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetComplexOutputImageParameter.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetComplexOutputImageParameter.h
@@ -59,8 +59,8 @@ protected slots:
   void SetPixelType(int pixelType);
 
 private:
-  QtWidgetComplexOutputImageParameter(const QtWidgetComplexOutputImageParameter&); //purposely not implemented
-  void operator=(const QtWidgetComplexOutputImageParameter&); //purposely not implemented
+  QtWidgetComplexOutputImageParameter(const QtWidgetComplexOutputImageParameter&) = delete;
+  void operator=(const QtWidgetComplexOutputImageParameter&) = delete;
 
   void DoCreateWidget() override;
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetDirectoryParameter.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetDirectoryParameter.h
index 28d257bb71..ed3dc62459 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetDirectoryParameter.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetDirectoryParameter.h
@@ -50,8 +50,8 @@ protected slots:
   void SelectFile();
 
 private:
-  QtWidgetDirectoryParameter(const QtWidgetDirectoryParameter&); //purposely not implemented
-  void operator=(const QtWidgetDirectoryParameter&); //purposely not implemented
+  QtWidgetDirectoryParameter(const QtWidgetDirectoryParameter&) = delete;
+  void operator=(const QtWidgetDirectoryParameter&) = delete;
 
   void DoCreateWidget() override;
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetEmptyParameter.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetEmptyParameter.h
index 9503fd41de..2e1bda47f4 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetEmptyParameter.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetEmptyParameter.h
@@ -46,8 +46,8 @@ public:
   ~QtWidgetEmptyParameter() override;
 
 private:
-  QtWidgetEmptyParameter(const QtWidgetEmptyParameter&); //purposely not implemented
-  void operator=(const QtWidgetEmptyParameter&); //purposely not implemented
+  QtWidgetEmptyParameter(const QtWidgetEmptyParameter&) = delete;
+  void operator=(const QtWidgetEmptyParameter&) = delete;
 
   void DoCreateWidget() override;
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetFloatParameter.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetFloatParameter.h
index 275e6ddcde..38d8176498 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetFloatParameter.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetFloatParameter.h
@@ -48,8 +48,8 @@ protected slots:
   void SetValue( double value );
 
 private:
-  QtWidgetFloatParameter(const QtWidgetFloatParameter&); //purposely not implemented
-  void operator=(const QtWidgetFloatParameter&); //purposely not implemented
+  QtWidgetFloatParameter(const QtWidgetFloatParameter&) = delete;
+  void operator=(const QtWidgetFloatParameter&) = delete;
 
   void DoCreateWidget() override;
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputFilenameListParameter.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputFilenameListParameter.h
index 24558b8129..28cf756c60 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputFilenameListParameter.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputFilenameListParameter.h
@@ -54,11 +54,8 @@ public:
 //
 // Private methods.
 private:
-  // purposely not implemented
-  QtWidgetInputFilenameListParameter( const QtWidgetInputFilenameListParameter & );
-
-  //  purposely not implemented
-  void operator = ( const QtWidgetInputFilenameListParameter & );
+  QtWidgetInputFilenameListParameter( const QtWidgetInputFilenameListParameter & ) = delete;
+  void operator = ( const QtWidgetInputFilenameListParameter & ) = delete;
 };
 
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputFilenameParameter.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputFilenameParameter.h
index 1ba8cbfc00..f4ba6199bb 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputFilenameParameter.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputFilenameParameter.h
@@ -53,8 +53,8 @@ protected slots:
   void SelectFile();
 
 private:
-  QtWidgetInputFilenameParameter(const QtWidgetInputFilenameParameter&); //purposely not implemented
-  void operator=(const QtWidgetInputFilenameParameter&); //purposely not implemented
+  QtWidgetInputFilenameParameter(const QtWidgetInputFilenameParameter&) = delete;
+  void operator=(const QtWidgetInputFilenameParameter&) = delete;
 
   void DoCreateWidget() override;
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputImageListParameter.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputImageListParameter.h
index 5f629f4ad7..09467879b4 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputImageListParameter.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputImageListParameter.h
@@ -59,11 +59,8 @@ public:
 //
 // Private methods.
 private:
-  // Purposely not implemented
-  QtWidgetInputImageListParameter( const QtWidgetInputImageListParameter & );
-
-  // Purposely not implemented
-  void operator = ( const QtWidgetInputImageListParameter & );
+  QtWidgetInputImageListParameter( const QtWidgetInputImageListParameter & ) = delete;
+  void operator = ( const QtWidgetInputImageListParameter & ) = delete;
 };
 
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputImageParameter.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputImageParameter.h
index ba9edaad53..9b590459b5 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputImageParameter.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputImageParameter.h
@@ -59,8 +59,8 @@ private slots:
   void OnEditingFinished();
 
 private:
-  QtWidgetInputImageParameter(const QtWidgetInputImageParameter&); //purposely not implemented
-  void operator=(const QtWidgetInputImageParameter&); //purposely not implemented
+  QtWidgetInputImageParameter(const QtWidgetInputImageParameter&) = delete;
+  void operator=(const QtWidgetInputImageParameter&) = delete;
 
   void DoCreateWidget() override;
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputProcessXMLParameter.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputProcessXMLParameter.h
index cc7d2391a5..0dba15f07f 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputProcessXMLParameter.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputProcessXMLParameter.h
@@ -53,8 +53,8 @@ protected slots:
   void SelectFile();
 
 private:
-  QtWidgetInputProcessXMLParameter(const QtWidgetInputProcessXMLParameter&); //purposely not implemented
-  void operator=(const QtWidgetInputProcessXMLParameter&); //purposely not implemented
+  QtWidgetInputProcessXMLParameter(const QtWidgetInputProcessXMLParameter&) = delete;
+  void operator=(const QtWidgetInputProcessXMLParameter&) = delete;
 
   void DoCreateWidget() override;
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputVectorDataListParameter.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputVectorDataListParameter.h
index b9ac60aa2f..da128c19a1 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputVectorDataListParameter.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputVectorDataListParameter.h
@@ -62,11 +62,8 @@ public:
 //
 // Private methods.
 private:
-  // Purposely not implemented
-  QtWidgetInputVectorDataListParameter( const QtWidgetInputVectorDataListParameter & );
-
-  // Purposely not implemented
-  void operator = ( const QtWidgetInputVectorDataListParameter & );
+  QtWidgetInputVectorDataListParameter( const QtWidgetInputVectorDataListParameter & ) = delete;
+  void operator = ( const QtWidgetInputVectorDataListParameter & ) = delete;
 };
 
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputVectorDataParameter.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputVectorDataParameter.h
index 024f39093c..85c02716c0 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputVectorDataParameter.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputVectorDataParameter.h
@@ -53,8 +53,8 @@ protected slots:
   void SelectFile();
 
 private:
-  QtWidgetInputVectorDataParameter(const QtWidgetInputVectorDataParameter&); //purposely not implemented
-  void operator=(const QtWidgetInputVectorDataParameter&); //purposely not implemented
+  QtWidgetInputVectorDataParameter(const QtWidgetInputVectorDataParameter&) = delete;
+  void operator=(const QtWidgetInputVectorDataParameter&) = delete;
 
   void DoCreateWidget() override;
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetIntParameter.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetIntParameter.h
index 2ad22eb518..39d880546b 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetIntParameter.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetIntParameter.h
@@ -49,8 +49,8 @@ protected slots:
   void SetValue( int value );
 
 private:
-  QtWidgetIntParameter(const QtWidgetIntParameter&); //purposely not implemented
-  void operator=(const QtWidgetIntParameter&); //purposely not implemented
+  QtWidgetIntParameter(const QtWidgetIntParameter&) = delete;
+  void operator=(const QtWidgetIntParameter&) = delete;
 
   void DoCreateWidget() override;
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetListViewParameter.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetListViewParameter.h
index 3901befc97..faf35cd9d4 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetListViewParameter.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetListViewParameter.h
@@ -53,8 +53,8 @@ protected slots:
   void SelectedItems();
 
 private:
-  QtWidgetListViewParameter(const QtWidgetListViewParameter&); //purposely not implemented
-  void operator=(const QtWidgetListViewParameter&); //purposely not implemented
+  QtWidgetListViewParameter(const QtWidgetListViewParameter&) = delete;
+  void operator=(const QtWidgetListViewParameter&) = delete;
 
   void DoCreateWidget() override;
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetModel.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetModel.h
index 3427dfb84f..a313a5c5e1 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetModel.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetModel.h
@@ -79,8 +79,8 @@ protected:
   void run() override;
 
 private:
-  AppliThread(const AppliThread&); //purposely not implemented
-  void operator=(const AppliThread&); //purposely not implemented
+  AppliThread(const AppliThread&) = delete;
+  void operator=(const AppliThread&) = delete;
 
   Application::Pointer m_Application;
 };
@@ -178,8 +178,8 @@ private slots:
   void TimerDone();
 
 private:
-  QtWidgetModel(const QtWidgetModel&); //purposely not implemented
-  void operator=(const QtWidgetModel&); //purposely not implemented
+  QtWidgetModel(const QtWidgetModel&) = delete;
+  void operator=(const QtWidgetModel&) = delete;
 
   Application::Pointer m_Application;
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetOutputFilenameParameter.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetOutputFilenameParameter.h
index 6d12f4908e..75b2a664e0 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetOutputFilenameParameter.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetOutputFilenameParameter.h
@@ -55,8 +55,8 @@ protected slots:
   void SelectFile();
 
 private:
-  QtWidgetOutputFilenameParameter(const QtWidgetOutputFilenameParameter&); //purposely not implemented
-  void operator=(const QtWidgetOutputFilenameParameter&); //purposely not implemented
+  QtWidgetOutputFilenameParameter(const QtWidgetOutputFilenameParameter&) = delete;
+  void operator=(const QtWidgetOutputFilenameParameter&) = delete;
 
   void DoCreateWidget() override;
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetOutputImageParameter.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetOutputImageParameter.h
index 4a66a9412c..c544a2d741 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetOutputImageParameter.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetOutputImageParameter.h
@@ -59,8 +59,8 @@ protected slots:
   void SetPixelType(int pixelType);
 
 private:
-  QtWidgetOutputImageParameter(const QtWidgetOutputImageParameter&); //purposely not implemented
-  void operator=(const QtWidgetOutputImageParameter&); //purposely not implemented
+  QtWidgetOutputImageParameter(const QtWidgetOutputImageParameter&) = delete;
+  void operator=(const QtWidgetOutputImageParameter&) = delete;
 
   void DoCreateWidget() override;
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetOutputProcessXMLParameter.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetOutputProcessXMLParameter.h
index 00a3804453..f154d4e3a8 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetOutputProcessXMLParameter.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetOutputProcessXMLParameter.h
@@ -55,8 +55,8 @@ protected slots:
   void SelectFile();
 
 private:
-  QtWidgetOutputProcessXMLParameter(const QtWidgetOutputProcessXMLParameter&); //purposely not implemented
-  void operator=(const QtWidgetOutputProcessXMLParameter&); //purposely not implemented
+  QtWidgetOutputProcessXMLParameter(const QtWidgetOutputProcessXMLParameter&) = delete;
+  void operator=(const QtWidgetOutputProcessXMLParameter&) = delete;
 
   void DoCreateWidget() override;
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetOutputVectorDataParameter.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetOutputVectorDataParameter.h
index e2b675dfdf..87f61b75af 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetOutputVectorDataParameter.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetOutputVectorDataParameter.h
@@ -58,8 +58,8 @@ protected slots:
   void SelectFile();
 
 private:
-  QtWidgetOutputVectorDataParameter(const QtWidgetOutputVectorDataParameter&); //purposely not implemented
-  void operator=(const QtWidgetOutputVectorDataParameter&); //purposely not implemented
+  QtWidgetOutputVectorDataParameter(const QtWidgetOutputVectorDataParameter&) = delete;
+  void operator=(const QtWidgetOutputVectorDataParameter&) = delete;
 
   void DoCreateWidget() override;
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetParameterBase.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetParameterBase.h
index f0874fdd84..8b008c3844 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetParameterBase.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetParameterBase.h
@@ -82,8 +82,8 @@ protected:
   Parameter * GetParam();
 
 private:
-  QtWidgetParameterBase(const QtWidgetParameterBase&); //purposely not implemented
-  void operator=(const QtWidgetParameterBase&); //purposely not implemented
+  QtWidgetParameterBase(const QtWidgetParameterBase&) = delete;
+  void operator=(const QtWidgetParameterBase&) = delete;
 
   virtual void DoUpdateGUI() = 0;
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetParameterFactory.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetParameterFactory.h
index 729700992e..d60d520e44 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetParameterFactory.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetParameterFactory.h
@@ -67,8 +67,8 @@ protected:
   ~QtWidgetParameterFactory() override;
 
 private:
-  QtWidgetParameterFactory(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+  QtWidgetParameterFactory(const Self&) = delete;
+  void operator=(const Self&) = delete;
 
 };
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetParameterGroup.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetParameterGroup.h
index c13d3c9af1..4a062a93e2 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetParameterGroup.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetParameterGroup.h
@@ -52,8 +52,8 @@ public slots:
   void SetActivationState( bool value ) override;
 
 private:
-  QtWidgetParameterGroup(const QtWidgetParameterGroup&); //purposely not implemented
-  void operator=(const QtWidgetParameterGroup&); //purposely not implemented
+  QtWidgetParameterGroup(const QtWidgetParameterGroup&) = delete;
+  void operator=(const QtWidgetParameterGroup&) = delete;
 
   void DoCreateWidget() override;
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetParameterLabel.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetParameterLabel.h
index 8e499ea842..1c9bd7e357 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetParameterLabel.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetParameterLabel.h
@@ -46,8 +46,8 @@ public:
   ~QtWidgetParameterLabel() override;
 
 private:
-  QtWidgetParameterLabel(const QtWidgetParameterLabel&); //purposely not implemented
-  void operator=(const QtWidgetParameterLabel&); //purposely not implemented
+  QtWidgetParameterLabel(const QtWidgetParameterLabel&) = delete;
+  void operator=(const QtWidgetParameterLabel&) = delete;
 };
 
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetParameterList.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetParameterList.h
index 2dad93b44f..54bb57a941 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetParameterList.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetParameterList.h
@@ -59,8 +59,8 @@ signals:
 //
 // Private methods.
 private:
-  QtWidgetParameterList( const QtWidgetParameterList & ); // purposely not implemented
-  void operator = (const QtWidgetParameterList & ); // purposely not implemented
+  QtWidgetParameterList( const QtWidgetParameterList & ) = delete;
+  void operator = (const QtWidgetParameterList & ) = delete;
 
   void DoCreateWidget() override;
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetProgressReport.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetProgressReport.h
index ff301c2619..a6ac7dd0f1 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetProgressReport.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetProgressReport.h
@@ -82,8 +82,8 @@ public slots:
   void AddNewProcessToReport();
 
 private:
-  QtWidgetProgressReport(const QtWidgetProgressReport&); //purposely not implemented
-  void operator=(const QtWidgetProgressReport&); //purposely not implemented
+  QtWidgetProgressReport(const QtWidgetProgressReport&) = delete;
+  void operator=(const QtWidgetProgressReport&) = delete;
 
   Application::Pointer              m_Application;
   QtWidgetModel *                   m_Model;
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetRAMParameter.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetRAMParameter.h
index c8c6e07412..27c011b63a 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetRAMParameter.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetRAMParameter.h
@@ -49,8 +49,8 @@ protected slots:
   void SetValue( int value );
 
 private:
-  QtWidgetRAMParameter(const QtWidgetRAMParameter&); //purposely not implemented
-  void operator=(const QtWidgetRAMParameter&); //purposely not implemented
+  QtWidgetRAMParameter(const QtWidgetRAMParameter&) = delete;
+  void operator=(const QtWidgetRAMParameter&) = delete;
 
   void DoCreateWidget() override;
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetSimpleProgressReport.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetSimpleProgressReport.h
index 25d7052231..ffaeac67e6 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetSimpleProgressReport.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetSimpleProgressReport.h
@@ -61,7 +61,7 @@ public slots:
   void AddNewProcessToReport();
 
 private:
-  QtWidgetSimpleProgressReport(const QtWidgetSimpleProgressReport&); //purposely not implemented
+  QtWidgetSimpleProgressReport(const QtWidgetSimpleProgressReport&) = delete;
   void operator=(const QtWidgetSimpleProgressReport&); //purposely not
                                                        //implemented
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetStringListParameter.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetStringListParameter.h
index 062e38ea67..5845cef880 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetStringListParameter.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetStringListParameter.h
@@ -57,11 +57,9 @@ public:
 //
 // Private methods.
 private:
-   // Purposely not implemented.
-  QtWidgetStringListParameter( const QtWidgetStringListParameter & );
+  QtWidgetStringListParameter( const QtWidgetStringListParameter & ) = delete;
 
-  // Purposely not implemented
-  void operator = ( const QtWidgetStringListParameter & );
+  void operator = ( const QtWidgetStringListParameter & ) = delete;
 };
 
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetStringParameter.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetStringParameter.h
index da520b579e..2570b9f4d1 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetStringParameter.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetStringParameter.h
@@ -48,8 +48,8 @@ protected slots:
   void SetValue( const QString& value );
 
 private:
-  QtWidgetStringParameter(const QtWidgetStringParameter&); //purposely not implemented
-  void operator=(const QtWidgetStringParameter&); //purposely not implemented
+  QtWidgetStringParameter(const QtWidgetStringParameter&) = delete;
+  void operator=(const QtWidgetStringParameter&) = delete;
 
   void DoCreateWidget() override;
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetView.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetView.h
index 42b399d7e5..d896739d7a 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetView.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetView.h
@@ -155,8 +155,8 @@ protected slots:
 // Private methods.
 private:
 
-  QtWidgetView(const QtWidgetView&); //purposely not implemented
-  void operator=(const QtWidgetView&); //purposely not implemented
+  QtWidgetView(const QtWidgetView&) = delete;
+  void operator=(const QtWidgetView&) = delete;
 
   QWidget* CreateFooter();
 
-- 
GitLab