diff --git a/Examples/ChangeDetection/ChangeDetectionFrameworkExample.cxx b/Examples/ChangeDetection/ChangeDetectionFrameworkExample.cxx
index 8196e8efe8a1b7bdbaea5d752a26d975c9aa1ce2..3e0853c2cb26b904be1cd09e6273e1651e6721c5 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 e61faf0608761bb35f9e6fa8a105b6232b035c9d..d8f347125d423060f2f565e5958087307f42bbed 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 fa00e3615bfaf4d6c6fe824813e5c483d905a7fc..15691fb6bf84215fc3169ff68dbcd80590959f66 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 a5cb6a56a02f7f18af6d2811b652b64c7d6dc470..2336f359c626218d8a9f92e25e3e64c84bc35945 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 5393b36ff511a9220441495c3bab318b50408c09..956cfd69e18d31b77c6648e6e6c8719f23e34388 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 109f67dba72f39d3c56b35ebe552c585d83c4299..44cec720e6d98f3211da7008eb0d6b53b3686015 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 5a0a3d4855efc5bd8e731e61f068a50aa43b5213..b9b30aa7d5a3df419178e68b01d9e12615aa2bb9 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 d6a6de8e302ad8ea491f75bfc1a6f06f47e006b3..d9e959c0372f33e7564310a2d1c1738b40c82eca 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 2e835d0cdee2d7e54177a2ec5ac69db8fb27ec4d..180e6f06c3cf4da25c6bcbbf0b060fcd8b9e0e4f 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 02173165dc376ecd0fe92ac7cf6548968c255845..f3ad24c5a2350a9592c238f6a58ebebe8475dc46 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 8c55665ce56e6be4a362ade658b4ab7c16fe39bb..e163b7830da39fdeef49877e5826e4eb9a34242f 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 ed71e227f00bc8e1e9610b2503f2b24ee0f66142..c8f8cb4d018f1f41053afbb5d9100dcf95250d59 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 ea770482aa1729fe1c81c73b62a057ab91ff24e0..2599f7751b8de10a4666b32716581fc6bddfe411 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 afb48610e7e4164a0caf76ff3e88226d6ff743b8..68f85a596765225de632696bd6955285a749eaa7 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 82da6e8092c1f44eb38cf7317f0bfdd2715883bc..4b26ef8c33a57648ab951281907b86f9b29f48ec 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 fe55f03488e8875df4efacf8f902fba64f222294..816906165c86b91039d78d31e3465350955955c8 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 a3faddf351878151e4ae6d5bc5f9efd42e7c2bf0..edbe476f0290e0c457029816b9d7abfe8c4aba70 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 85598ccecb2531dd6a877ee90d040b4783445952..82413cdec53260ee57f2ffdea9ec9d8157182082 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 71e45fe72763231c649d559c687f2c8b7dafe0b8..5dd079f012f4c906615f06cd5a94916fdb807882 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 69f7afa7c91fbd2c6bf841f5cdb237a03f45fa0c..c46fdb1519f46fcd0dfae2e72046e83990bf61d4 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 1112606acaf981d26dd9934864352ffd54434c71..ec9a18e5838f01ae9472464e718d769d29ae4373 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 549ad2451d85745f196db750ceea2ba3a9156c12..7e4c69f4dbc00c52793a0356a474c47ecc442f2d 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 29098833a9a38e56cd7218145887f4ebf27fafe9..2b0af570c1280f05c71f82b16b69b594aef1a9f2 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 060b01ba29d41ce91d0980157745d31297b2e873..dd4fb6c937de48bf86c2ce1a2f116a4c03bfeb31 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 91bdde52147caa8a9d460e498a3d4a2ea0006467..8104d9990b50c74092784d30aaaf9758431445b3 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 dfd3132fb6017f4df1a3cc182951f745aef5b006..5c59809713028927cd99cd386d5515ca87c2c3a0 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 a26e4f826963c360cd4cd4f1d4c5bd7f356bcbe3..7825a41a29efafdee611bd04627973e6e292bd16 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 091ff9e88f159a5ebd09a42065711671e625bca9..7e58227ac8f439b4188278bb8ef459721add3cf0 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 32192a68331ffd3c7aa19365f2eaf742a48fdbcb..8846d0ebd387bd555f5e341af7e2942898323483 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 26e99427a92c0c9dc4fdcb57b46bb2e9368f8ca0..b14489c20aae68337e265669745846736a2d3f51 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 4965422f0665652b2af5c59b5ecefb7bf94fdea4..63396d7112ec324886e704a8edf63e1eb76d03b7 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 b333f99ac9fbeb9c004b87de0dfe1cfdc99db5b5..d4681c48f732fe2bd9f4929708a81daa649005c4 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 0da8d382194a6815c31c19ccc21a3856a10fd383..b4c81300ab727d93ed3085970c16b02b6665e1c0 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 758c887ac9cd301aa6187b831c06d02228623079..57b13394ddac8bb107a895b729c0575bee5ff2da 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 0373dbf769d80e83d4c1dfc3db3fedf4da7d83c2..8908d95d4c514028f0af61f420bf99b236bb3e1c 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 45741fb683821c4d4abe239eeaa363b7af005afb..be7389057de899459e3991cc74c181a3a24ee253 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 17a90c6c29b538c57126ab1b7f93e8fa19c06868..b3c5276953c4e7d36e7b12b584be71c2cde5f33f 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 bfffcd8ad244755abaf5343309b70c03cb021810..a1bc073cefa7af241a7437ca1bf3ea58f3ef0bb8 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 bdd7dfbf72e33bdb706b63b71357a7e08908414e..99c1ab7b70d5c80c3808e8a08308e3c4b38dc8db 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 cd24feafdf3e0c5db8e89404a8fcaccb3d84e8e5..59c5c5090bf5ca7bb770b4337e6e91aa53e0399d 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 ddaeca2e00b2ff946da0016ae9b9c8be5d8e884a..f17916deec08a9df7da788d5e1e086118e3ba5d0 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 79c0c9718c6300bddefbba01e23fb8601dea4d82..2e773e1443fbea6938fa2818cd2597dd62adee93 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 9fa9bb3bc4927a48715f5763dddd45a6619f3479..dffb2b41521b25e3ea8e8d4adbacbfd70bb54735 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 e094ef471a3382b3062b8803a015c2c7f090bf52..1e3c3444bf3b582ff7409343a3d8ae7deb3bf95e 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 07906dfe078b6c7d90bb3885a645f765088e14dd..864d249b2cb054e3fe4537ac110280d08bcdd0dc 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 73d3e271add0bb7acd772e6c8b4356cd04f97267..fade2644fa9cbb9b07a9a2d5a90519500a7a43e9 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 2daa2aaefa584a8ffa5086edfc15d16be968dd57..c7ae05be2692014a03ab04b875835fe423d2b989 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 6a7bf4e12d80c329ffb9ecf97e080f123ad48c99..a23beed18bd3c196360edfffdfcd5eb5c1345079 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 40c2f86725b928723b2011145af5ff1e56d89fe4..ced97e4d6ae1f1c79b94cafe86792bbd1d3e7a92 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 d8eba8a50a4ae20d1015af12c7c4be3dc72de38c..430e0db2dec9e3af2a6896c52b8118e47c0e3607 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 cf17b63d3c82fffa47bb713b26a206d70ef7e799..ad7a6b1dfa32c48e6cdf944a65c5c5efd9ad362f 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 4733af545023ae341e5ed3cb1048187bffd6bf6d..bc368622111247edda27548d04b907992cf43e0c 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 dcb2ec23770462997586915932ca1412843a18c8..bf6ebaaacae98f3bbabf31e17c91a9faa83a120f 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 6acb8b23acdb474d4799538dbf078ad8fe91af3c..9e758654c9b8142bc32ab1c02f333dbf5a6d3678 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 627b18af548011794a8892d546149d59d8beb7f7..5a4efef22b1b3c1d691c498eb21180b58fdf647c 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 fb653f3bebb668c806502f1cedeb3a0774929d0d..20fc576db7d4c3993bd8078613026836f9c4a8ad 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 1119453b2b358a465f8b16090fd6e9032ba57b21..32cf44b794e8f28095309b210831f491a93e25dd 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 1a057edfced9a4743615f7d3ce10d8cd91ea8ac3..ce501c963218b9480c57bb0cd0a0abb43ac734ba 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 36d1d7226497c37ffbf16b80b35229ec621d866c..bb29e36da2ad699a9035b8acc299a963191cfcb4 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 94cae64c241606f728da588c33cb91f5a65b6f24..e3d6fa98f1399e6c85bc0b29359d28909a24e358 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 57703395bafa91c75318c02a1bb4cf45333e5cc9..4de1c9940b714f40e870735ea126f43c996e3641 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 ce0358ded4b3eee6fd7daf5885debc73c8ca54c2..411cfc3d10367bf448dc7c67711f783986a9cb8b 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 31fca5a236c6085d22efc6e1bc1747b5edf57777..c95a0679a733fd32106663675edd83da04890386 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 38da528f662a92c57e510ccc107bdcc0fe72b39f..737fc06f20b2a81242ddc5a3b8c940b3fc349a1f 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 24245cea27a7290986647ed449edfd76da23716c..228a8e68b2a441ddf1659022a84d9a01cb20d8f4 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 4918ff363d2f28b4929a3dfe99fb7eb740d14018..46c83d865f3ba394578d0283b3f5d6d007d48c6e 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 f9d822cdd6e42d8260d6d1f77225d7917f53c320..2901522f0ed70529994f7e0fe7e69f76d1066dc1 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 c8a138ffec62e367c871cb9908e318fa0c7f5e3c..166517718c949739502705342887f573345f9c2f 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 89ffbe232659ddaf49a4a91b0da87ddc8bdd4e17..75a56344e1c1f6861360c2ca0f5d0603c52939b5 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 985e57cb9602fb889625345e6190cada1ccb1412..04487819d1316a8105d22c9804faa5a66fe84047 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 d65e2b3c0403ece03023cd7772055447e52bb5c2..25ada97feec3e31b5661e0e2a067bc5a8718c921 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 2e3c61d5c86057c570abb2646077c1d41a8ce100..7afab7bc58aa5cb65d130257d6aea7ef4dbf07c9 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 56083fc5c7041000994449a99bf31e4b85d7cf5d..be6dbe1b1526228a9e18f6fbb7974c5ae14fd19b 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 a03be1bd837b58913f9de220fd51d944f01b8b01..bdc32d74aaa00a3395d4f2f4d49d0229b2bd2658 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 7b4ac894a301bc91ec88bd2e4960b18f87f139d5..6df4c11ff09b26d606a69ad657b38f01dc589343 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 55040a6e5e18d30ed6d5c161aaa404b0233fcf7b..e2e01969340467647c857814a001aac2d193dcc5 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 3400aec812ae4601b5ab278d46010159ddb7205f..346bff8d8a31d0e82cc4216d1e1537d38c58afa9 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 ccc3a6dd453159b903195923dda1df73475eb269..d1ff1f07030c125a799091e8664cd9e7bff15ab5 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 cd4bc3086e39649e6cc35c54c151f1d1028c6605..c0ec1bf654ceb2d5733985081733151a18e3f7c4 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 96ae25ce4cad1e44cce26d49c753119a9a9ca80d..5bfb512b332b30a2347b8a2e385429e7205f6f7c 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 afc376eabe1a218aed2172acf30bc83f416f27d8..d255c9c26008bf360acb5b84ae0f35a35b4fc1a9 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 083b4b7c1ffb140b341133df2ca45af44d015448..f170e49e6945a2ff375c4576010c3a4795f02382 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 3f2826b78917e081e11c891dec588ec36d08cedd..117e5e4382593a74d6d292be5c188c33f79b1627 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 f81e74966a96b86b796b1e9505369e69044ef92d..77bdcbb870f79152bd39af2ec83e2e5cb15f88d0 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 0f19d38b836bc8aa0295679377c815cc70fbb6a6..c904948e31a10cb1b3d9cab275fb682af29680ae 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 271d3d8d81fc10262edb633beb2264f2eab41b45..967c0121d71fa90b213b9dd64bef9156f474024c 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 372212d77d5bc03ee702e28b097fc4e1937ae0d0..a779c8cf151745d4e65be16eac6e40513604a923 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 6d39a3eafd091323af19d562a26620870ecd0368..c2224378b55a00eebf12d518619c032590b792c0 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 b19c1e4d3a2cb7fa5cbd00f08f581d9268139913..ee4ff5d17fc873f5e1c3d9c694bee691526b5937 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 218cbe12aef16c117c102b89fc34fed5e0fdfee8..6437618caba47cdb7a6c4e14dfb3f3a3be16f080 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 0b1f1fd78e82136bbd6260232bcc35d02217589b..a69ac14f288ac3588d299976451cf7d2cffe7ac3 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 dcd33a74262cafd7dbb419a76ec1f44f2f1243d4..9a78796c59ee64a2694f0e7f59222412b2634fbe 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 e4226adf6b9b068105c3d31cabe0474f72cc4cab..5a24ad7c27b4e657ac470d6b896f2ab42d1dffaf 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 8a948309809ad317576ba1790d82d073f89701f7..6613bc0a0250080d011f17cf77a0857b913fe9a5 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 a543c766e0a1a36c65b649628d8c2009e0971211..dc45bbbf5177873eb88a59a5b3ff209396faf917 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 65412134ca828c4d867e7403da1d0d83e0a1d9ab..2f1d1f0184558e6c454a373002fd39bc3c2aec13 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 a1a95784454ccf4b32d251e554af748ed34c77d8..b8a73ef72f4d20191a8eaffe71ae6e45fb7a9a59 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 836056c5f1d10114ce0dc380f15b77371f73ca2c..72d46c5abf05dab95f8217b76288c11d34e687e0 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 bd00c02bf7cce3b1476d51741940d8171b4c25d7..3dbd158547a56834e4e1ed8c8da0ce5b5c313ec2 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 2c4d231fb3a6f8ddaa7864503e2635ae215ef448..e6a08303e68bf9d4c37c90de8b51b3d08aee36f8 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 df837f6e6e2b736ab03b564316f4cae682200b11..b75636be55b30bbbb08cad62bb3798f6c1b27698 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 04328dfaff0fab4177e332a72c3a91bb4ac7f234..ff3b85db861cbf75ee55093f3b21ecc025b47ce7 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 0782320bfdbf82a83286b0bf872bc47d3415bc50..ba19e81005f6552fbff994a89be9f6af9c434d42 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 3d30545b75a8d45731831f443a74501441a26d68..9a473b893695c2451ac37f7d37427c3ab5466159 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 efd60bd15e96fa91c51cc181ece6e841e8a154e3..f5fa66d20e857390a27826fc964e1fbfa4ac5960 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 b9cd10bc282f2881ec8512f96b5dba912f902352..7344cf26d2a9b0b9a5aeb5c6fe7cd815292f145a 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 c8636398587041b1ce523b8481d80da0e6d70c8d..38d7ce40ced44aaa330fc5659dc87bbd459adb10 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 fafe69dd8fc845189f3e90961f15c89f21e7f613..23ded0bbf0a3cf8fd6131f07bc659cce94afd498 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 a63b9fa3621660b46b6c2e11c1233a47a6a54411..a8d68207509c0760aa3c44f262f61c82f81cd84e 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 83e9ee40ec26535a70c4ff46885c3cdb2f74acd3..bd76c804eabf8be09b2d88c3beda7ae7fd3941ad 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 3f855595eefdd4f86971c18a4c888b547573febc..03e91148655d0fd5fbcbc49946872e011d36c773 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 8516b694b5dbd0be3cf6e6a0f7d5d3bd0e10637a..49a2d11f3a46fbf6420de7058ed7b557533b3e55 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 321623631fd442c0b77a78d6ecd6b7c89a57f4ea..b6181f61e29b77a7d28606c694cc8f5c72828956 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 3d68e5b6de4feac9e4062ed133feeb7083580f28..fb1e5418b3334965c6cd1b3dc7dd8c3fc9195369 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 3d219588485639a79e7532190c6aa7f54cbd0d57..1007e6df13971d010f214a9e5b2bd7d32740a7ba 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 b48d21fa40ef08891fc618d19cf70e16c36d6e32..6af98a94bdfdd99ba90d9c65dab416f115654754 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 cc7d167bcbc506dcc2c0c1a06661dce1528f62c1..f57bd483600520c45690230929171508acf79b04 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 1ebbd143ef80989c8b21309a83f5a6624ec662de..65012ab388b7dcab80ae4678abb6ccce7b4aeaf6 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 67c27465b62e63371957a5072edbf1f680b52eed..56c067b409f95b9129bf4d19f8f0b3acf8030c2a 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 9865945dc4503f92563b52308848f3a357f59e18..814df0753f1085c89cc6b1df0f73fd120fe17083 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 1a4838622037f7517cfdfb05898eb83195b72803..1fff1873d2c9a15e4350b77991a8893f22b64aa8 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 d290e9e849e043e3a303b89a45e046926d178a56..53a504983665638e0cd2305cc76d0aa8fada2a57 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 ac84491ee543d5c8dcafd322fb47e6727a9d388d..3841c8b9f7c78103eef19029cc9e972eb7551363 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 1978e6966fa2dc94c9d11f2a0b7a30ebefad6bfe..92370fa43d128d19f0bd098429a02bacfd920e6e 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 80464782d4af1ccf21c9f93b13f406d4017831e6..de9814f9348c3ffe21284c8b240b2c721f1f804e 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 586bd3535a4d4649e2a93f9eaaf5c0e85879a110..3dbefeecdf706408da387913cca057dc6659ae2c 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 1b8bfec0ec7bd27269569c3a656637dd3b255156..b906edffbdeb62452cf4b278eb766fb331aff02d 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 8f6fa80b675e902c01397df9c463ea4db44cb814..ec873d99d6b899b3cbaaff61b15572476b029648 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 bf101d61818fd6f45307c2588316d6ce43cbf433..8d84273489122cb908b0f78e8f11b4b9b25ac2b0 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 dc864f192cea57f2325dad1018a98630984afb5d..150b97af5528923df4fa823aa5e09fb54ca9135a 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 c14ed78b7752a8a6c5d8efbc12d545e14fdf7921..98b5fff5213362e7b63a2246f2abea873527b945 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 9bd92e9667c454c29ad46323499585aeec4a6c8e..54f4e0d8e823b63e2f51f206e80e14e748163125 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 158bfae6f745e705f21693443a6838193de54479..4065ccae0d13fd7e682c04ab8185f40ff8ff7c7e 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 785753bac21c639a2ebbb301fc47c3679e43fa21..3e278108896d19c37ce17439e3ae77cc9321663f 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 601c8b65dbe63fe9a4dc2de8cdc0788dd390c025..cc74ddd871d04a0b1015d02acc2fba9076baecbe 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 bbe2091f4bc3500ebb0b69e385900191a2d4568c..52923cbd5ddb7b0ca16d09d057ccd12f70aa022e 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 e84e807a0abfe1d295bd390d1cef6a1f67b56877..cfc09283aeee57d41aaf7b026f4b31afe7ea3e1a 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 b3a7fca7078fe762589381479a7fc49d2aef04f3..3f158f90f36f7632aa5acffd41728867dfb1a1cc 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 06867c5a98c4ee60bc2ee3e071850de3475bf6ef..9b1dedfa6a6f6adde74ac64c2972f03f5705d997 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 fd49d3ec5ead9cc22fba5877c7517fa8931c476f..b113b03677305792511accc99a67246b6476420d 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 72a6854b6ec17c1d1d5a5b891aa32ed36d963a86..9232ed96f68718fd69591bbdfefe9e1c46afe14b 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 f4af3ce59b931ce1e8adafa1663010d1f60d2527..728546e2fdb7163aa808ca72091b153028a807e0 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 536f2b305be1f4a17fc999359a0375847560f723..dfbc49ca23bd3ff7d3fa27a4e29a9e4c01c0d28d 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 c1ab636cb3b4bad147a2f39ab4e4ea7ee646ebc0..132e5ae5b19bcd2de201adc8ec6da57ffee6ad08 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 9da17bfef6ee4c72d96feacf671c5feca1006c13..d3174d7ed989c9d33aaf139c57bebc72f72789cc 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 fadfaff42ab6263640e67554600c6df3bd175cdf..76e0d0592f11166076fccb3f72d6b7375d07acc4 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 26326dc30cf2edcadfc65755397caa3c26600f6a..ba728d927f7df1be4f35cf818c15d8689b4a57a0 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 692848d8332cdd05fa6c02e548aa720ec3523aae..f319c00c46c63034eb5d973f1d22af0c465473c0 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 f40159b95ec7d10afd7ba4452c9619f531175bbf..f802d858a465f2c966eb217a20173c45563331c0 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 bda15b231d1f51cb876a8539b78371eff9c79f02..03f39aa21a941cdec0fa6c9268f24cf3467f6141 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 29fafc6bf528190377325ff63be8fb2e5b67664b..d01a475cf1822aa92958c98fcfd403e8f84f9c93 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 0bffd7e95779c755c41e2a94a276a72360845e1d..860fa455ec9975ab02afab4d673a610fd6ccdb15 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 f638c972335b9f833dd41ea45562d2ef36236616..a152662542dd312d8955814ea3e71463dc8843a5 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 c15842667466ecf61249ecbde81cbebde1f20936..29d22c055182c389dcb964ebcc007f80f76bda7a 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 4e6d5f15ff3621384cd10bb84a8dfb1c14be0b6b..a41106563ac19a2fa8bd6148903ab846c40495f8 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 35f0bc7cde4fbed8eddaeebcee1d4f922d596b6f..433d99955ddddc888af26f7d5dd1cc1b36249a47 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 9d53f04f14136d02c08b51b9611381046b41126c..fd9ed8975e165c395b751e7d571abc1ebf7f5d45 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 79850a27d9ab2c86c2c957bdb63869e5f55b44db..6a36ced78bad1627febc1a991b37b7b0fc9444da 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 14d60db886f406eae1b8e1125d055c4e049682e8..01ab403dc3e38a976b49290f326bf9985dbca87f 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 acb24a2f5ebbdb76cb24f8e2384003e023fe1db7..c76405f7eb4ee96b64e7c71e27c7b605e7eae88d 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 110595ffa993af2cadea4bb3ab449d88652cac23..c9894eafa51f328fe89e04a3177b4ef4a4dc7805 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 f2ae212e5dc0a142a9308bfd4934891466d5bf34..e3c4f313a54f9c2986a6b7c5c4d69b2560d3a625 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 41b7058b528737bcd5ee371a129ee32a496e8ed8..dea4315b01a0351699ec3e5d2b8b612e79f1d9db 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 17dd9e92e0a17362eb1f65b4ec2eca25e799aa92..e015b8e23c2975ad7b1ffe93a06dfc2ef6d33f56 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 f3752c8c88398204a525301c40e028906b54b498..2ee30191beb504e069725d79ace1c048735b0500 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 33016b73da44cd0cc28519ae3ee8858314e8b798..2636c5cf50422e9c79e07d1dc0b98962eafb595f 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 5f389b35b625acc114bc80f6953a19298174accc..0dcf7dff7a88694ad40c0ad7c3ff95ed09922bc1 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 798dd99dbe894fc14c873a67a0aa0e6e0be8d40d..0be2c90bcdc3419c018c55153c090784fa2d5577 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 0a0039b0657e488f3c3baaec430201fe1c39d68e..0b1fc076136e6e120157bb4b17a8161c07b14ce3 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 1a54429a791c7e55c04c69ac44eb69866162a6f2..c7839f8b6d9c2700df94060a0ea13cfda4772c0c 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 1d7cd20faed2054731c54c5ba38ab3c2ac53abfd..f6db4f70f9309ef3d5688eb231a0eb10052f8109 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 75c1f0bee44b36fd04fa014fc14871f5be701244..b4a1757c00c106c787713dcf6e4dfaf2ee414bbf 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 fac29ae71b9e4f0384ca5909324837e25dc9523a..0b8aef8b809d6842dc8708e06b6c052851edbdec 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 59f22cca0e9d75014866b3212148c9d065084ffd..d4828df892a3161ca449e62e46983de4d7845ff3 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 4031a0b46618eff76d1c9bbbaa64fc192c0fd061..7572c713c1994ba230b2c8b4a2967ba2e0b23c7b 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 024c296191fae5b2c212f72fcdb4a2e27bff5f10..f49a55fb553f6f2182bf4a6700b7e0094daf9b1d 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 fc795bbf1fca85721c9880f98954f3f7c3b0c641..914137fd85e44814aa82030d7d91ce6d71e5812a 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 3ab76e6b4511dc8c1e452ec89e01148326bba4c0..274e4f76d1cac822048709abd203bf775a4c0600 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 46ff16f5af8aa71a5865777d840d53c736673047..95653d542573d8997ac6421678ea6381e9fdb09d 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 4a55751a558ada83bcff0e032f6a05acc3b529ff..1c5291859ba13c52afaf3dc7ed80fca71a47bfb6 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 1169695ab10f0b4225a1c259d470ba23ba31db18..827425433334a751641353117725beea6ccd7bf4 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 75d2d09a9cbdeb98cc0b5e95a1b6e31cd3326d33..ebe68953a0d33bd8ccdac61af5c7f9fa46f350ef 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 2ff4b90c983b72799ab44bffb9f26ca3a60b229d..cbbf8d133e3c40c7a71f33986204fddc98e9451a 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 276062f0f06f120e2e0119cf66f0f39a9de2bfe7..52dbaa8b6c498bf6d90c6bba80983c37c29a319d 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 9d971e97b202a7f376963cedd891c407c5ae4486..945fc56218c7ad0a3fbece4d9df33e6fe12054e3 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 3d03e06d991bd7a17c50bcd09720a5bea70e6d08..02af7640de8c2e0034d29d734c909cf35f39e114 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 6781f42e6496bc54959ab370640d31cd3bf42947..d39a63c75004c1511fadea59ec84a8d39a92317d 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 e3680973f1a6584e90c08d434ecf9ae4545510f0..0ef02b0c814729f3c09ed40e59efcea2ca1dd648 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 a6dd5526b435755d1fdba0bce7924d9a77acc5c3..7b1d94539aabe025ff5ccc0fe142c509357fa0d0 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 9d34f04ff76765b0e2ee8445730503e5d4c2cd92..5930c35d5aae1efa384aba64b8c7f2553e6b531d 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 e5ab1942d43fba315af0f47c8da4bab98ef70ff5..d0fe805cf78896de148aa23db26791dc1f53f090 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 83e8345b9b709bdd6370c2eea20a2eb23f9fb546..ab10ba835241d714632653b6e76b3e9d5dbfa049 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 6e24abebee35550566826266ab5f4a44b3c0c1de..2f82bf2dbb3b2445f7937915dc5bde639dbb179c 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 fb60b080f34dc1338b8449e505037550bfe4f8ee..085b31ee3e47d7aa04e0fe0e7e6e853e73f42af0 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 ff27709602a2fa7ffabbe8919a8cd1ca3bdb9b01..adbae3394a652b1324284e5563a4f0811bd9529c 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 ca4a40efdd9acbab74ba1bb5bd5f21832fd00f8e..8a2b63142f8375d8fb011e5fb2c68d5de3965286 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 8812c85fa2de5c247aa01d712fc9c318ff018f88..91b35799c5f4421a2941acf49c5431dff420c4ac 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 79e05822d315e5ddcaac772a9ef633f4a2630579..5259b4e0b2bb6805c29825096ecce960207a3e0f 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 48744453c0b4d6ffe97ecd2cc356e637b2c586c6..1d2c6bfe01ec5f254e37e25578c9215b162629a9 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 f8c133af97480b0f9ef8006940f09d78d3fa81a8..03ff84dfdef4df5aae2f25cb27f21f675b3ea900 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 f784a3159aa4aa976d22aea8338774eff9fe0917..9fae4a897f5044f73f87cb74a91e16b1557cfc56 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 badc48a0d16249ce2a8a7e775150f90608174db6..39eaa3bce2c8d5e23039fd9358492b95556ac54e 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 68c594ec0bc999a9c3235f065647918258df6f20..e8d4c6c0a851b3b1e177cd9e3326b71bab375361 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 a2c985fc206db69e2210741d4d768c26c49dbf04..b07920e67cceffba19818a50df1bd728152a4f40 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 2944414abd82f6ea372edd2ed9f390092d4b9a62..a1f07c482d09fdce8c125b9f07f6caaa8e00f404 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 6abb4fc1c0b935453be4e88b3e2ad24d525e379b..2080f6f2a7dec3bdb79c1ac82cc3df5fa44c2cf4 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 fc1d0ccff4f151df50a15dd4ecab634782412eb6..271fdf3e5f93ce7fd6e1733030bd05bea1caf601 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 44fadcfc973f9adcc14118ab4b0befecc38ec9f1..f4ec551e79bec944efc86c24973b2b606d326ed1 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 47f61fe050f8d2369698111af45a5158f8ec640a..bd07312edd2c0b45ae79fa74acc57ad4d00e77cd 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 56fa10d27f938121b05956f38dcedc9c997ae213..8c7474ec8a6069fa546b0b6a098ba6d49edbd6e0 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 9eac6eeebcb383c3dbe4a21794a0e2dbb1ae181a..0a78af0f056fecff15aa5e01e24b93c0ca6e8f36 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 67a5ca55c6beaababccc30095d45223bf1f12b2d..c8ac8bae48a96f0de6291eb80a617035de6bcb8a 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 930982a8aba1fafefb234e6f1c34344181c93a8a..82d0b64555e0d02f33f408bfa482b23b62411bdf 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 e554389b152746d710397805bdb1928127c8fffd..e4386292c1b29d21e3f418750f60f5d66f14d97b 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 bb8b1f2e6d132aecd114a39356696d284d05ea82..0dd8d10791fbfce1beaafef1e78081712e8dd2ac 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 bf16d31549d549ff9e1da260092d4ba4009e6ede..d5851c125e82d5cd96831e3b6a9f27fad635f850 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 997e5da5e5929230d240304a531807006cb29ea5..3a6d68f0e92ca5b57ac8e0c90959bd428c417e1a 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 b0c011244cb25172076d21727ff369ac0353f16c..af57eee90eb535b22089294c0bfff55b8b7eccaf 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 991f9c1b5e1ec3acc8d946fabf830c11a1c26b23..b05a3de7987ef2b806302d17a2a49a8067753889 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 2b789dfe757405fce5fd0aed4812f3cfdef32c36..9bdddd6390266acc523479afd4ae4c6f1521037b 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 33fffc7376ac7187f1cf1e3a40c41bed20c817da..d0c50c4707735adf3f942659b98949f909acf33b 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 76323b278a0712cae62b528677cefce46b8b99ea..fe557e5224a9c360a8cd600e5092ec238201afc3 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 3364b55fabc190de4278f18289302de71fe66d50..05be2263201a1be1a94b07590fff00af2dae82e8 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 915054394b3180562af265a5a90c9110db2242f6..abac114da0d4a335494a8cc62c702687efe37109 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 bcc411f56848bf0a616d5784e80f6ddefffa0701..cbd7713119100a0a249f71d2fa5f2ea278d2c692 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 3ed85b87e232e6e381909e33a63f5d1c124ae256..6a77da7f3bd04738c7827d16062b44d77364bd58 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 ef78f8c8f106bada22f21f45d3db465ba3a75290..4cc70ff2cfa50221d4fc6d18d1ada9103a760284 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 38ff44693bc19afe73abb02d26ed35e319d372a8..365febc98f4970d3ba1e8841f1bdd6d3afcaca53 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 4bcf136cdc9adde818344c39dfea4ec2ace00b71..cf7e0cf03e4d62d6ff366bf8d42802f125d7b2c8 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 1213469178203df3a6356854ecd8a1c21c52b279..2da9dac793be32162e3c8d3b93b9de4789a14db1 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 d17ab84cccfecc60ad72c78b35981bb7796e8b72..fc250afcf31d90a6798d875f4d62e0c3896f763d 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 90b1cc18e9901740bb9bd9b9b30db50d8e8e49a0..37393478a323de1f82cf381df9b9286b763ec41e 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 83d638752ed2cf3f51af5f49b16fe2f9cd7c8b6e..6c1b29f6828842e5d22c45e899ccfc7c9feb6689 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 5f8629703250a19d42d83d5aad641ef05b3f98b7..42b10edd4fb1982597161a008af2bf7d4628ddbf 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 4590e021534d5621ea643093e4faf44ef4f89de4..4b8bf182889c41394e166296abd02c1774019926 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 4f6e4788b88d0302a415c10c1e93630ed5023df5..9955d55334890030245eadc9749153849bd865c2 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 c02171118b23a39a0d378c267443c6196d9f03ac..6a444cb7bbd525a43277b2ba5082df1067cfa10a 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 3c319ecfb3253dc1ef63ac8a38c602ec3f29f18a..0f344ccee673a4a3023ff8f0deb65f9b59e04570 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 855460a704892b969c26a940f1c98d451a5b03b6..1174935d27ed878ef6b980a570973071b933c0a5 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 6508a9ce8e1dc871b88c1b08958e435d53738f29..72ef9176c6660d2dba553d32a8af15e0254d8508 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 49563faaaf4079e7021d1c1435682ef37d6e8a36..23a70bcb0de48164394b81ac36f475953a36adfa 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 fdb123749ac658382aa2a1654190bc9bdf409d3b..d217279e1b94409898e5931d6b31a568b6ef58fa 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 d535d989cb476cc3701c0f569c882bc3c1736a8a..96d50a31da409032b72bbd9bc354e8405c82c580 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 4c8f48760de0dfbe456fd0e1c228b08ae8c835a2..dd1bef6975a6f8a6a7f83b1615440432488121a7 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 d48e79b04c284d025b3b64f8bb20c24341fbd47a..47e68f6a0ff6b49c4f90aff36c7238728df7cc3d 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 3ad0f99046c11ec827e83bb15561c599ec8a27a0..93bc57457b003f57151f6e3606ee3827bf0be949 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 6e3cd1707af083cb90395e0dac80bd88002c8609..08be9dbeddaee018285b88239278a3b8774df93b 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 bc717f3838397bacf54d6bf469a09343d4d032b8..fbbdbbc872e9e4b723e1ed865cef9a9849b042b1 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 a4155279005efac5b58d3c5d538c8d7345a203b0..b05eace44b39b1a9811fbfa28d652fc919e98499 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 22d3fe478e3803b53205285154f0e29cb120781a..4b6b233f9b47cafa01a8137dac4d695c11427ea7 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 72b6517ffff1596786aa02a84177495861b67ad3..64943649a07bcb646d8c3a44be94abadc5de3710 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 3c5d65006976b929cac996d7db96b3c2bc2e4c0e..62bcff4a850b13801d49908053ee9a5405126086 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 b3732a164a41f35ac6b5c1cfcef8194b78e73b66..f6471ec1c590cc0658f78e5f64061cf7b86cddff 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 02040fe05fa5a5d978844cb7c0cdcc5f5338e431..a5bf535619a4f23d9a00ab2ad264467d1fc3ff7a 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 3b82bad169d805f1f9fc272b856c6dae783d0ec4..47495938a1eaf43f9ce6d04b0538f3883387e062 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 e6650ce67609ba2c93db7e0307a938117fa4ef64..ec9ec9a8328ad8dc60e19b59060e732cfd9b51aa 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 4b710c4bba5179fccaf9536afb57ccffb8a8ae7a..2ab1209eefdd9c0f14617e5ecf3844b470e7b0f8 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 98f736f84accd02622dcef389c99eb679935a572..9026cfdb088fd37136e022234add11e6a44ead57 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 ad9c088b641d9f1811fdcddeffb42d391c318fbe..f51d0fd63847267d0fe8068320756e969a231e7f 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 bced45b78bbafda5d05d67e676a4c8191fbff8a3..ee680d2eddd2fada1200e2acbc2fa7b9b9d205dc 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 b26619d8e226afe0ff57f5a0b2867b59be1e4607..209d6e8b174d1dcdeb5e28159555b6a2955d686e 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 bb54a51f6662fd94d7e4d64f8fefaa8468bd1946..b30faa0ca74982a8c78e6bca5b08256e86038c65 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 a93d1b6bc9607a713bb139712ace0e405a549714..01c65edd0b5a696d76402fdebad103a4c6babadf 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 48aa6ae096473ecacc8ebd5b68805c213c3a71e3..ee8cbf70e5c9bc4898e4f070644a9330350d50ca 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 51bc83c9b8c1a871c528e03964b7be962c647dc1..a89729f0ab63f55b1bc0625387b61e1d61b02277 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 5ea56326988ecf7ef7bdb3d761ed365b7dd03df0..39d5f44fcd63d571640dd2d7615e51779c42f868 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 c5b8a54923220ceed8568f0b955a440c901acc79..1282cda0b671b360d3d3966bc170c50ce9906b67 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 1eabaf7c1a7320783bdda09afe998c2beda2742f..f7c9c1206e08680ef83c0380d6e0124c9116b071 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 9f26a1c94d01be6f699c2c8700408559db44796e..edd770eb4bb191a468909dbb689123a242fdec76 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 a72ed2dfa9ce3061f276ff12e283e30f0c03c892..d806a1782b3bd63b2d95c64b2a48a4e695e68c54 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 cc1e5d4de7164d37ba6645fa033ff8edbcd5f5a6..7b9866c51c52e77f2a2acf5a2141d2152fcc9d62 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 1864a7e5f94cc4ebf4909afce8ee97ac38012c36..54287e49afce8b4a903806ee71d1aa9164bd2335 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 5e9d614342be8cf79eb605963c1709d2e0a0255f..064032466a5923cc736da7ac7979ff3775311e58 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 d63ad8da0fd472189b697385cc07cd7b3da70be5..c0cdfd353c6be6b85f6c3c7042fdd0387db04cbe 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 d32b18d0a9125a43f2b19735871950b75aa6ab11..d9fa6f3c7216a344d3fb1a90784812f87dc40000 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 ec60c693df08dac36a278b39203f0e9d6520698c..47a453d10c814807facbc7233d001bf8e0d001d9 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 a8f69d607e158ca54125371338fc83a6c9550fe3..be6ed177f372bb0d660275ba6a0104518c446bfc 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 dfc99b5f0bcf7d322381b6039a645a57bdf869da..716ddffc5f9084ec0dc9cd724b9d2ae7e7258bc7 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 8ab7e0c989df265c70bd52996be47bb7c5214f09..2bff0830a2c90e8a24665d799579f77671df1e1d 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 fea7f9a8e84ac20f90f3ed459962116c08dc62c2..d92770582b2d6b5ffb03a094dec816e9025ac5c2 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 029b9344b3f805ddc89ed35a31f5d6a78b1eba61..c4643f0fe926f5253b4f5fbf980bed2fb28385f2 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 3bbce052eedb2473e0a1c1c6aa1471a6854de180..513067e457afe38abb03d6ab6d538b2c0fcf8b88 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 b367f140c80ea8a8d200d7ffe075334891efe011..61b28b941595d3abf1cf9552b51c89155237ff09 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 b4e8149461e292216e26c64e3963728a4746ac6a..5c8149772f3b4a32e9574082e29a2951fdce7125 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 84ff84cb59e0d577c14df85f1dcf11ef417edfb1..2703b00568c8d2dd47bc9e91483e59b16ce8b0e5 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 7f9cf3f068f801e7e10cc54e21519d2fb0a99e54..16fd357f767b6f84767ec8d75a53b9aa78c770c1 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 30fad1ad60efdf1e935c12527030cd7175e1eed4..4b3ca239f29a50bb460e0bc73c9a2259b03091ac 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 61168d59d1dd437eadf0fa6cfcee2d48fd33776e..3491ffa70638396c9bd270bc1301285f5d5ec8d1 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 23655ef667d30f0ff8f9e87b0d9d28c7d362a273..8acc6ecbf418fb734d6669b8c3106a561d99555a 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 9779f1de6fe27345e7e642118bbeda98356da493..c67cd7854100e363a6ca29c286a3713bd0efe76f 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 8ec6c7850aa54a6574a01519cac24735ac246a0c..993871668e268d9d660588174b76ff0cc90b64e1 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 3425e90a5e4892d3bb256778b50f017796f3a62d..0d7b11b0c3ecf42976997f93c068d6a9226dc9ed 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 36c7fb14bb241b088d92cb3129044642c0c0ed97..10b6b5dcd4ab153da4b41e8179213867b3febb84 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 611dc22ef39e57efec1ddd977a2baaa3955ba0e4..db2bd2da37dcc206e43b6ca08e67f8f566282768 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 8cc130a72832bc9f204462480898ad335752b6ee..25712fa3a245b211c1bca8c4ad8e1625ac888115 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 9d482cd70dfcf3af286c880688e07be9c1eab8a3..5bd1a876c62f49bec2555a456ba874ee1575d7b5 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 faf49f1b0982a4be5870d222229480cfa892deb1..07ee23869343fc4530b53820c17d58c20abb65d5 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 9654ccebf4e8e736fccc7fca18736384a2ebca3c..10e25c7f38cf295bd85b8bb1e6d98609070aaa0c 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 e473277d1c07d10df0e3d6a16c0b77a9f1191780..bf5d06c957c7c33861c598ed64314f46f5b4751f 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 0c4168b247a96c4a3c67926a8d83d892c87abb98..1ce63313fcf4d84eda127f604aae5e935f2b5d44 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 68f986535201d5a5bdd32d0bb98a46081647003a..722349918002c3afe654cdfda659bec11da67db6 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 9b90aee8cd3ee82a5d5d5297c9bd47cee50db47b..5924b31d006987addf5fd8114362acea8d61cf6a 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 7cf4f3c44284de83854b9aed87c7a516daa941f4..3efa48850e52636f42685b8281f8c0ba0e814ad3 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 423cbab31342a2bc1a59105b5f8aa75eee9d0289..48eec84de72bb837091c64674f81f6c5dfa93078 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 f79ead12bb00a5c8e1c0ed0f27451ae5757b16dc..67175f4d361fec2c7cdffee0ba92acd3c4d12e75 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 164d9d19e2511cca27069099c2f9ca9ba285b9cc..19c15d4e6ce3514332bcbd908ee03b0497526f52 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 c48e2d2e2eca4c2ac1fb836e57df88cdf528bb7e..972c2efe6cbe424b2db27b8c1882d9a6f47822e4 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 483f2e3275ce047cfb8b1647226cce075f90f151..1271eb825daf314a8d18294d15eff7b96c8af5ae 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 cf87797e75b5ab9135b8e6620a3ea31ca980e708..886e9bb811265932d5128cdbad868ae684fa1ab3 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 7eb50db4f4b0ea8b9c0407076a501bc757500f6d..5cd29f76ab56ebed4f81e35b08c2d7b708900715 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 64020282a392e6267b5d854658997d76bc224892..67a727f2aa924935ca2b411d7a08821f1611cb0b 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 b925c64959685b567abc4ba5e70e3dbfa68fac02..811362868c53688c9afd64ba7fb24d49fc7cac8c 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 d562ea081050bc9cc27ed32fe468a41c4aac803b..c46e4ed2bc44068694de823446f0635083518a21 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 34e42c34bcddc15a37a475bab04b087f9e30e7de..a6c5562dde6f6da6e57ea7fa23e779f9011fcdac 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 ba02992064eb8408d98ee223f7c468473a24e3f1..5f2bcc51f44649a618297880793f6bddc30e3307 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 09602f7650692e212a364d79ff7e5ac2ee6eed54..8e64219c1c7a7c1d9f7f40efda24c687142cc25e 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 f221719f73a591e5de5783e7bf2725844fb4b5fe..a8ac2d4d5518915d1333e9d10f3d10cd9b6ad4e0 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 deaa62aed91a320bff164ee7e84c5bc20a0fd0de..f92b1995aa5d69706ea601fdf380c8c29328e6a8 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 7aae5b4199702a1cc6a6d695402592ae4356fc12..a8ff3d28f843152070bb777ea5c563728d46385b 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 b2701daf370c575c1bacccec0f76427798dbfc48..a5d6cfb7387bfbaeeb4180bf430b6e74716c5b80 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 a502acb05a8dc99d45d902764c92eb1c529c6709..f46d13da445dd6911b8da1ad6193f3b4f3bfb955 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 2ae2485e7264005530824491df9aabf5c5d15e62..fdba89c8dd13df5b1d97eb9cfddbf1a496bd3e81 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 a6cd78452f689301763979e00bb9ca40cd6145db..e2c92563194f373c031b3b6d6c22154cdc160556 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 e9ddd48734c30b1cb16d7461a867b6783258ce1f..7a3d09a24dccdf56c951a9d93018310bd65ad3be 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 3a434ac76be237fbeda0aca9e7e6ad0db47db994..c29925502122aa4c726f62278c622ca2821049f9 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 053c1b4566d4f9174c87efdd67a752dd403c42de..5d3016f5325aaec989c9241e85357ba5f6675dd0 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 5212da806d7753a1ff93b42c8a7325527c097b1f..19d01c5b66abdc971e6bf9b2a6677fedb1210285 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 ac57dd9a85f054b0fc6dd9ddc248043dbdd4877b..685f9a5aff791ddc0a070801a945334ee4e42b1b 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 b491cef10f2b56bea1eee72f555174390d879b2d..a0ff07fbc80c99c05473884a2feb56dd1b2c71ef 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 d0eab3a05e09a48dbc0006710c90abfc85680de5..afa5ba016ae6b982581cb8373c8058a4763aeb56 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 c7b0be5625b95beb2799632fc3058d3d6447b906..e96867e96229daa71e008bd38d499a9397ebbac3 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 7b49a7fd3ea7a49736d01ac897b081e4c9280d83..6aa85ba70b2f152fb0997dab99cb2e71bf2cc2f2 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 732149b2114c116d5aa993851a00fda5ea7b66db..f28d291f72de4b13460673f719add9e51371c6cd 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 47a9929ff75c63c9914e795bd0bdace7b1a87210..5fe12ac1f5313e0607d13180c4b917efbb9ad494 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 b668d970e33eaafe0bbeddda5594bdaf8279507f..ce29df46dcb01ae076e76b44a7a58ffe336d2958 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 1fda8044e13889fb8b5478da351785dca8ac3074..567da4af3983c5f16634c8ac3407bafc85537f33 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 9c9de8abee430d1cc72fadd66bd528da679e486f..5851f388b83d08e9e017408cd205180c89e8c67b 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 ac5d3b89b33cdba40f4894e7d57a7d45e6c570d5..bc0f8c7306933317abf73c1cf8d6b0a6ff4d7f99 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 f976eb805f16a59c6d103869a1732de140f9074b..2a69f0d20c5594079384e80afa506912ab21bff7 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 146d7d4d6dae5f0516533c62d57e82bba4af0ba8..b42a23f6fcfa6d53bbdb4fd7af9c41affbf400a5 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 ca1b010e231da5b5d5dbde804cc0953714608f36..c83caf644164a9b2f089c2001d265675741b0a69 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 e260d86b3221dd4ab234fd8265aea7f3642f404c..2d9adf7b23bf84cac06b852c03b850479682e7b3 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 0181cc72763be8cab65790dd489a384bff15d3d6..df9f28e9cbd574cf76cb96ae719a76645a8ad8e3 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 88fcb21c6316e1b406b63d565322959226dbfd4b..b7314a79d580ccef60f069e409aec0e889314acd 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 21176cb50ea37dc304a0d099994dd242ef029bf5..df0444b81e79bae6ff86f83989ba481e2c117fd4 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 3e0b32a71b3e28c22d41334400f4ce42b562f916..1a9c4f650a492d9855c06ac418acae5ca157a049 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 fcec423adc6bc8256034e978c95a8a8cf7384224..185125b7a725c1866bf7d1c3f601bc90b28da2ff 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 77a13cbb0472a75272edea8a37bd5ccc04773935..7da6917c69b24d14b78d0ab2ffb242c81c13bb6b 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 7c3ab103d00deefcfdb9f904eb4707547740c379..1cdc209f182974573c6c55568c87aa49259f079a 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 78a3d1c1cc4212ef4be994a36fddd4bc0fdab6fa..59b1640d3c1e92b188afe9ea9f58fe604017406c 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 54dd975da48a2594728d643a67019323ab3c91a9..2e584c720344e8d0ffe1c1ad76f8f4373ba3f26a 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 71e7d6917df3a010042a4c56c0a17fd6127cd1cb..5bf1a145c44b79ed2ec89f20547459df0445067d 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 8d346c71493679d1f72c830cc4b056a0806b4299..c49ab569258f0c540eb02556610a2e6f919c08ff 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 761f4a0f74cf952494e7be810c0413a632bab796..9393cdd4d83c0344c4e69ddf0a0dfcd5102763bb 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 2e95fff07cf72bcc303d1079e114a1057257db71..bc62ab406182b18f156d2c3040070d0c6f2ce618 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 2da4369697705d86a9629fda19ce3a86540a21c6..9522a3dc54f21098973ebe4552ff697faf10bb24 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 900eeb4947675fb23e29920e0f1764e368560dff..e3a60859e7bc5f775e130eb174628d5379a09aae 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 319c19be77046ede4ec0242abd74563b994d7a45..6fdd423457435481485bc1cb9f190cec1144666c 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 bb9c04c06f37df3da0b96a0f88fb1aa738b18350..3747ec06173497f4ad1f238e66aaa839f5884b08 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 2b9d4dc32103d3786b560bbba2659af5b6092b9b..bd914e23278b5bacee88ce2c9b002ccff7df64df 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 d02d5a6888e538881914f764de7be90981bc6de9..06d7ec3966e8843089d3be2079116388a34107e6 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 06436338f0cc550b3c5561fa8ed9b5cec2b52cc5..5a8a8f1995a9eaf105072b78550e0714b92284c5 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 0f93d53e91d85dc3f8877bf88803331a3d77237b..bce96de2555dbbbf7bfc849b0577e1051421e206 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 225aa44e4a43217afe89fd1522ea7d22bda4dd79..2b387814a2ae12af0825b3dd752ffec4302fc341 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 925069f259888098ade27701a754e4627493e348..220b9a0c38ecc80e6c9bb5f65c4c9531b2109b44 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 827b852e8f487b0c131c0c6074d5119c0eb98ce9..bf37333abdbe726aea912037018b8a558dcaac91 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 f22b21de3b262040e5a757793125e516ef859a44..99200364b8bb11ae6802f46e28c242e88b05925a 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 76dfc2c415cd18e0ff52916ca220d0539403cab8..4e59e84db4d935cacf4c6cd1fa3f2b6a91ad3a1b 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 07691cda1c6e57f24d52862c5a8863620e82ca1e..81c1c2210eef1a7e58e7d727c84ed7820d01e0f1 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 377d61acc6b4e636696ba922d7daaf314e6e6ead..fec9625a963680908dc225c1b6584d556abd1423 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 53bf34e8ec8395c25dadee34e76979ccc1674f97..526b194ab09bd0d78ee45201750f8f67470bcd99 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 a3d1f273c4eb593a2da5af4b4ee790d2af296a9d..dc5fe37c44a84c3afe876ad6e54d59d5dfbafc08 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 27c7f714171cfdf0f9f4b6b39af42c63779e3143..b063d0fb3b030f2268631308ec118574aaf0f9c7 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 17c6ef257be2c664ebaaa4287ce48dfa8ccdb112..1226e36c85ab84eff41f4a286a014fb384eb025e 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 0fb3a72973b94aacf6bd72d0209a886f009983a4..d6576c37bbed000045431a52d78480a5ab0478d3 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 5359f30b2fb165d3ec642ed94c7ce49e82c7ad64..6ea197e067f1acb17594d37b7ff087c76038ce3b 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 22b92e4a05dce7d732d72bc5c43de1542fc9a269..ad7659d922801bad7cb6282247f6deb4a6cb6b14 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 5cc26f3bb61402cdba9d8cc6ca0cf18cb0bf81aa..4e17401946d7023c28d3ad19f4fa2d0f2c65b57d 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 415f9f9e4f1259eb64e9b06d163dfb47019260f1..46acadb67d1f490093879ad2bce9509cc1563871 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 e8b7a190d3219464cbbf12e98722a3bae46c0d43..8092cf1d36a4f1d59112a53225c1c41d6e17b929 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 c6d2125ba13d755a6330062087c2fba196a8f2b7..0d4e8cc5609e97d4eb796f7be362fbe4a9e4253b 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 35a384373a36e7f4ee50147d59abedffa45b2cbd..b5b34be4a3e21f7335041a02e0f57a7060a7c3f8 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 60992d15b3d19bda06802627ca7a3dbbea121b18..c121faeb1fbd3caeeb28796cc8fc6d701517823d 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 34743bb569815223e38bdd996477a8cba0b80c3c..c36c1c0911b3b442fbf3b9bed9db24df069bb73e 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 d455ec83d7e7710c8639fdbceac7c1382c2f32f3..40efd1202d1eeac18dbf1f19cc6710667c2f0cc6 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 0ba5ce9031106d863aa433e2af8bd682d9694b78..a82bed669ad22a7f42d65ea44707924d4e9926eb 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 845f7dc00db625ff19e527558ae179b5d1d7aff3..6dc0cfe79a4cac91c39d0568197e960be34b8788 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 4fa8981e15fa036004aa4256b7aa65199df9b0de..615ccc13f5512b8cee609e51db878be8062439ae 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 d22fcaba4570bec5ac7a8cf23746a163812aa00f..d452a1318ca1271ce8b0076a7f7b7c03d62f7682 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 9bc1a1e55567e01ce14352d136cd324d7e0ffae5..cf6211bd9506011426fe856f6a5240a9d1054f26 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 2a074d874822919bbb08406051c822242a1307fe..f2542f3be5c8a50ef0d9d68ee30afe846b70464c 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 88bf53f9c2687df430c4dcc8ac5f46f75d216de6..8beb507cf567fd955c92bba762c064fa680d54c0 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 d904e39073bd54e20f2fa4035f38a1d4e4141baf..42f96558940f329d7e6d7b5759904c32e8858477 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 152788ef816fbab51a3c3cc013a90a49eed0e7b8..e092656945876dc44cae4e90370a600530110a60 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 38eec749bc5bd3c5b3832bb1730780a8f71fbcf1..5348890e2e1d932acfcdd55a68925d0675d10d7b 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 00ed571aa8216ddcc03e3c194f11f4a71845cd33..0770189120e55cb1fb8d8d18d381e48c5a946974 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 aefd0fc2e10c774aa80a97526764ef0eccbb3161..42b72c1afa1be0ca7ff15aece3d4ce01166be063 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 e3700768792b696bd5869f7b4b1022c897589752..a258628abedb1dada2c641b1cd7c426b13e7cffb 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 a10a93cfc8de1c07949a04e19ee6d18ba2465a0f..7058c1911c2243c05014104e2ef9dbed10324fd8 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 9b8c7b3a9dc2e07311a52e3e8772210b2decfb52..d9c5c97b9184ed62e22370c2648f85418023983e 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 2cc0a9e543eb3e0a36f548aba7b9dd114b836ddd..69a4d83d93b57de016bf053b4c62d0d43474c198 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 d91745263866382c7a9879695e3b4bbb3f97beb1..6ce9ed2be7adbd2cf3b243eec364741dacd61b14 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 83fcb6014ae0d5f36ef0e3e0766e5b3cf6517073..7ba64bbcbf638f30734459fa79b1d33c6b9fba9e 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 1b0839c7b79673ee1002ca866272c4a3f16fe625..fcf638c2d65f338d4080aadadd24f1bfa1b44c3b 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 17d9155e3f57e7094f13111d98e583afdfcbafed..ac89d754c351e625b2cc005ddf7003f3365e6405 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 3bd7150ec537041c5b8c8508bc83eae2d94a58d4..939a8bced61adc461db4b2f317c3b4b2f1f678aa 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 bd18a932c85e15e6864b2d74bc487ec61c6dbf0f..0f073805ed77ce0cabacc0abd272169b8aade8fe 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 6b5359005756e0be97fc702efa4c39a654c3e43d..7266d7efcc1acc0e1e1f7741d400dd4c61390516 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 3f7fdb9977c6bca3832aea71179dbd4bf22db565..95f95e3f42bb1eb280be4ac2aa20478e9470bd18 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 919c6ff50cd760871db14250e985af60c1fda545..08a8a4a520894f9abd2ca89ad37cc868e589b985 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 b3b43bfeee807b1cc4ae7daea070a8d81c68ed29..6e403dcd7c4ea5af9b805ffba2c3a8c4f001e4cd 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 87ed0a2f9c08f7a3ef381bec5f12bbf488a852ff..390c08fe7ac9e8db1b2cc2e321bc4c4bcb00c45e 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 2db1bee395b77f26129d07e294806edbfc0cc4cd..ad9baa500aa07b606b28eb8e077fce7a767d246a 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 2dca72eaf41e1a99eac0255adbbd0628a0f0197e..a360d58fdc1b998b118f6c0f9755dea126e19482 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 a3ba98b7196940e32b065d876ac983c4858bdee6..43c68b43d262ae373cb0062d62321c5c173399b0 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 f54321f2f46c848104f35a4481929d7420f0aba6..39787388eacc4b5e09e8c9b4e22acb72c3c23cd4 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 57beb9ef2fa2671d535963cbff31dad13ced4f12..ff523bfd70b58dbc03863a0dccd64051ff27e93e 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 b39a267f718901ef884d508e5f957b0b1c620743..3dfb27421a07f980840df9dda68863d6e1465e65 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 68d914c7af6307ec49c4a9168fdca51cf4cddfc6..d2efb9a66b85162ffb07588f6fb6fc5c0be3932e 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 e064511df57c3591dd761a7ef17f5d7da1c72e5e..fe16b95e837fcffbf97e01727b4d7e7679e9cec2 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 064a79856b2ab4e0d35b2cd10a025d49eb59eee5..6dd659a202e3e54b1f98e44e61b596aad26b0ada 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 2c547f8b51b9d8c905a1c6f5312fd5247ce24d27..2fbd4143c470d579ec933362611fbacce7a2811f 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 042106701cc9ca9af44b52fc976e45f35f848eed..fb885033c53d6865c7aefd73a6e7ef2706c8f2da 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 0207220ff0fd3c99cc64ba289dd0e4d6a0051d37..119d46ae5a59ddaf27c903c30c725b9219f50d0d 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 257efd5c6c6dc0c683652be4105d6ea94c464b14..fb7ca0da7e183d397b059bbd71984d189021febb 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 68bc950a422f55789b3cffa2c1bef21170593d35..4165c416de32354f565d29bd98dfc725b05f9903 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 e91d2346dc602892af7fdd6aeb0613ee06c098a0..c64de134eb41c38119251aac9749582242369403 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 89e8b9066f151e1f92551172e2b4e77c811f44df..410c093a664baaaee4e71373dd623cc3f3907d08 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 965c5180e838c46aa01cc127240aeb24950872bb..1b8801a8b4298936476fc4dc023affec2bf585fe 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 14d05bbca44718b28fa93efbf367ed0d887e2ec8..2c84a4164a1f253300fa69885c5e486293c5cfe5 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 e7fe656079cbfd57e18a20669b2ff127911a3b19..8121661932267cfe34794d5c572541e8e37f2809 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 4e38022e23ff13f68c51f07ddb4e1428678e17d4..848641c3e0fab8ee18444cc259402a40c5702956 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 ad8ef27c1bec44f73ff81e4df1bf17ee6a136d7e..d25c5c4fb9a970705641ec177680f517c356d380 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 b2bc93de5232d32487141744fbacf8e98ae6b33a..8d21dfd22750a7d84cc847411b041f872956a965 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 d69770c3785edd01b640db38dc71913b9d7c41fa..99bf42ad8734ba15c5b1e770a26ef7a60caf017f 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 4ec15cd4e49b7f45f791d8d5a459ac8e10a27799..a2e2d7e0d1df7498baea0fa0641f5e7de8bba8dd 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 5c3383e8070c0f1df921ad5a1c2dbe31d16dfba8..a1b5553efda0379f9307fc5249841d59a2142b5a 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 3ea71f9ccf4d1c9d4f74bb2e7be5ebb7faa7ec2f..401ae529f6e8c1f2acb471bc49b5d5b72d857883 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 5e26171a9470127a75afc909904e4feb658ca511..ec5756cda006221788e46f9e5f97f33a4272e4ef 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 374e9dbe568d20e03de71ee53beb6c8d06cb7d68..e791869599254b16f1e1db13648f2cf463bcf562 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 c1754bd2cd363993fee970f4ba6c012f4e57602c..c9a84ac7d3c3cdea59fc9ec58cfdc6d3f67e764f 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 b954895cc5f8ca85d20740796f7762f92d9ca0df..4e9fb2e8b55a3fcf49b12662fb1e111525a26555 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 702729fd340565b4c210b011a5a43c8ed08c5a71..5c04743be2bbefe32ebfa86a61d08e122f728cf2 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 e494c588dc57502d3bd7e2d17370d9dde3a13aac..c189a9f27194fb2e631827a4b4eda5741ba47764 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 275c0db252434ef5d3db4dbdcf093b1cf713a61b..0cb4411c39b9d8a06bc35a4383022e7a84f50007 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 1a803887faf1dc49a75b0c9bddfd2398afce0249..59a6a8268066b2ae0fd214157a9d145f9c52ef4f 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 003ea24d91567335ef86d355541ef2a221ccd085..67b5e19778378afc4ed1a95e26a809f13c84358a 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 2344ef6fca541478a916b704f8c9206d526efd62..85a33b56e775c3319167fdba2b738c9a674ae3c9 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 c872aeeba8353777a6d041c2a68d5b05605d5cd6..d3fbca7b53039c3fdddc79511a72b142eecceb41 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 c991edea6cba7c9e697d52109ad95f4ba9ff4034..b6db7d326bbe36a5d4e04e531b68861434886a9a 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 590eaf25febae3f68a6447d51a3bb43b20a7c660..0f5948c86d9cbd1ad928563fa1aef64cde63c82f 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 effe0388ca6875025a44580ef59af973ac6f122d..2cff640110647fb286de34279608034bcdabe214 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 f1c06592f7270c4125e2a7db778ce558c15ff8b2..25f8540f7c631f994567c367f30397df7389f943 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 fed00e395b42e341387940c2054ed02d45d10213..4f641c2044cf4a2b012f2aae80932ea52a31afb9 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 0b980fd77e409f9f58bdc372647c01161e1904b7..7c9a7422e9f7a73926ee17061b1d36a14f4877cf 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 620f9ddb6fc4cf26637ab9efd59fe5b77d73b87d..e59a2a8d3a78290611d6fc0353d3ab7665ab2c13 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 673360712754c7fa61f19477666daf655ed7c841..41c374a2338b30a52aa36e8fc1e16990d7dff405 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 d7823fd036d9c7b317f725630f25dd5904b3a423..d6beea653ea701da9e5936c5355345007d3a57d9 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 1a01a6187ab2faca7555001d06d610d1d024bd51..9cbe10b2afb7f72e3375ffef1495baefae1b2ec8 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 27a8db556e7c157f8a0f0d312e7a0d5cb31c2960..867a347701bc7b4dfe4aff1c888403b6010c6db5 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 e946e4064163dd3df2ddd3c37d78827bdfa88798..658eefcd5eaf9b27b7a65f0dc1e4ae0c13d505cf 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 b9286c5cb7545959cf7d7dbc6ce8b49e415203dd..51eb2e641d51fa9a21a84c6111ef470cfe264421 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 bf4dc01a6cf2cc446b18cc112eb4abffa091ab20..3dede58828da0550ffb745e051fc827bef093a04 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 c39686c525d700daeb2892e9c11ce5e4880c85da..594f55283bf22cf076e994810044ba5688a860c0 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 f2094973c91f914cdc10e79db218168b543f9937..f136a6bec8252b3a79fffacd06d417d1b41d8f53 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 169e946c7579a241c7bed42424c561101d608912..7313b074b6465524f7dbaed627f3a569f5b3bb6f 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 591999ac6ef4aa91d5017f171fad14df516bb1d7..4fa5006bc4bb06e6678d0857f21f117bda1c034d 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 93581e26e66bce1662cae11756288ea3bebce6af..6b01674b52fb3756e49b1dcc761f59ab657c13fd 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 b09880bce29f0fcca68a4e81b2817ad644bded56..86d7c3faa199969d9a3d778a6d0aee73cc173d37 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 d8957ee2d68e5a3cd08c9ff922cbe9857c3f8917..9acdf7eddc840786616acd8324abeaec7c9e75be 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 1eb5e1e7749068106a3d910a678c2407ed40be01..1730092353d9711a768e9fe0f78dcba01e79a041 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 3571baf21b87d41305427bc5fd48aebd42503996..4df9b28092071e01866a34b5e01f0f6f61311dda 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 4ef6ba6e129fca2ba33423931ef40cae66b15a4a..bd285d54b6734d7dd5e1982889065427a6660b52 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 62754644faf24d031217cbbb0597b8ac83e6fde9..0a9335b31d42214d6f6fa01df46ea95a32bba51f 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 bc5891e2469b0d5370750e00696977d538049fd6..49ae13d3bf9510343e116f624ef276631c0d29ac 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 32d4d430fd7a836f70ead380c99aee5178e9c143..18afb8e0f817aa0e6d98148463b7e8c6d415e0d0 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 8e8807b7122aecdef62caa855b17dd13f72ce092..4a08d78764cef9dc1fc6b677ad108c9bf258d6a5 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 70e8f909fea2001d0ddfccae78b7558ce74eaf3e..6f99177e877d88e672d843135043df3e8b3cebd8 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 2c90a53c1e08b887442d6cbd975d1712d1c21b84..98b1bc803f9f21b54569b3a8693c5e607a3a13e4 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 2a3731307e351be26d95ce30771a647c003c097f..ca77284e9aaee49b9ee85222ef171167d9260703 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 e04170ec37e5e7b12064fd8d26992288e5573c62..5110fc6137dc3b2d8b404670314cc81ebd7465ca 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 98c84903833c5ec6d7da5fd6d2ac0cb4e114870b..c92d7d63d3643e8b3fa7b9ef7bd8e22c7534534c 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 0cfab267dd0df607cc580ff60d13bad01ea152f8..d48d400cc243cfa80bb610bd533ca2284392fee1 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 4080014b1032602850da11b010e33388cd54281f..2fa07f5e99bd91c5e85fda0c96210f5370e7aed5 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 3276d635961ae665f73faf7ec2d825d65e496ae8..2cbc78e2d02371e2e9e2e2f7d9ce698f1c1b66cb 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 1bb14365c0312f5c6e15c04620e811500233d200..7c71c01ba10fd25c5263f16e5f7816fda5e275b7 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 3677f64c12586de80930684ea484c210c11221ad..77b407846744f2623c27563bf2363e0c8a3b0631 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 ee2eddff5a825d3ee3dde5fe73baeba1336ff100..a7a30cd5f80881b40931acb120d68d59d5560060 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 53a0a83fe5cd4ba9890c074b349ef1140253a28d..3de3c8a3a23658f52f3baaa63088383ffc1e05b1 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 49e409ec8f30a5a0c095a1f77f79424d3c7fc4dc..8605edb5b1c3133d110cf5885143dbd378d493c6 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 ef2d6f02bf3439949d0ceaee37182f4b7b40ebb8..0e72c7fcfcc90fb408293aa1671911fd77b0743e 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 1d94c27531460a01eaf81c37536b5bfe6c590c15..daced60f4437ee12a8fa1b24eb1ec425b17b1616 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 5f71f8cac2a6880b7f99c57c2d18824e9090afbd..ae33ebe576a87709c0acd3146c2f97359a4e3c8e 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 56daddf8bb92a601ef3e03402beb51f1ac5d5f01..f506f086dcb11c41633af0404e0c361aecae5240 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 928d7208264f2d4cf2f3295ec2afb7c8a12c9830..4bbdc898cf4266d124d6a13530d643527febf419 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 08bbb8bf059b18b135aa782fbbd555e283abbc43..3b913d2dae916c7b542213b2016b307868267b35 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 160a38e29950dcec7f73800b642aac400e5da424..fdaa7aba7423f2a26fa8ef18550c6bf246da3cd8 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 02fba263c4041ced10533b1f1fb89d14eac7f520..1d32719dab6915def50f363f5cfc407f08c7d60e 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 f33342d6a1d305922fff1c59454b024ccf941ce2..78b169646faae24d87089f822b13ead32b6e869a 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 d7c32c9d18bb2c33e98a2dcb5cb8a68f2d22d842..af80118a95a0313ff9e2a9ef389158248618273f 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 0b34b436e2d406158f3806f1cbab4308a200946f..39230855b07e8fe4b65e9bfd756bd497d692fd11 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 5b1364e277a56a1b3fbd079ce987ea6cfad0416a..e1b9dfd60867bb7fa1bdf71ec1f6c7bc9dd590c1 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 6c8e2ab53cadc6647ee923ca0d419dbe90ce595f..89d21483fb83ca67edb85c3679932b303e35d83c 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 63b8af0a7a95dabb33795817a4a4b302d495b832..ca2b341924eb618adcc9b5b34ce9f3085c9e2757 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 c16a758a5d82b51578de112e59963470f3625f41..2ebafec1beadc9f676dfc78898de2edbbf73572c 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 ad9d86a54edded0d444b6a9b8463f775be5107f7..b8c74c6e4dcc99d9f843c0662a91703ea4ff05dc 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 36c22666d5e6f71fcedad011e8bac219d93c0ba6..56a89d9e3944d35fda24a567abed0ef0c3f327a7 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 909dc5e84cdecae0274f55395e8af0578b9476a4..53812f30a7b3010069b77790916d9195ac7c8cb5 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 6db693ce26b5ba6e02708e2adcd6d05ef24d6561..ab5d2c737f8eb8a334c78a97e44422cc86f26386 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 96790db5a8b7bee3ae20d470769fd05cd3423f61..f1219fe1d084cd72dd253310fed7f3194d70c44d 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 fc47f214052ff9a2f1aebdcd4181d4118181b0f6..973211b41fa180cb4ab22105ae56fd8f8b14e358 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 5635cee32dfb2b77420992ea988f3610359b7061..e19064b0b7d76a7e2145f35ba608c8dbd0bd4eb4 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 ae1c135e0a6e5e21e99bc451890078e53509704a..205fa96056fe8511cb1f81a60dd94368bb54cd7c 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 19bbab10de3dc89a7bb5e5f9a287f19340f3fa59..744415a7b54bf6ad8de4c5182fb05440d62e9b35 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 4cc7203d881ee85a7ec69dee818383497738016d..a608dc92f1d21411ae11e461aef25902c1213c48 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 d23411d923b324b843f53556149e68f3fd811bb6..7e452a6202754e39d58f51727dcd9d532b0e2494 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 717a09313e1f3d77cd20ab07b7e99817a53a9b76..148589d22a4ab1702b5620674f7f291dbded3c87 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 51f102b96c175b8b59521c1e391d64ff41dc085e..035dc6a7ec1a7e7ff0771d2f4bec4d6eb960cc3c 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 8d96b2a179bf7ea9aa541bacb2edd4a5b68a64cc..b1bc08252cfa1f61d281594f0305d1b5313f4591 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 08bd6c767e7dbe4c7a7b7c34495f3c5ed38f8a54..b07b98855d493c4a49a0357268b08cb7990f92a5 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 67ef0758cb98e450695371dbf26c30c2b7e6045d..a059b1b6d8136b063bce6b36fe9c8923f9c10326 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 44a1bad5856c67d36ec0f75053212c3eac532a3a..72bef70d3806a8e078435bddb795d9bd6df2089a 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 ad8f1dce904e94a8fa317f8410efdf58e3d29e3b..ef266b297505ceb1840a73b757eedab16b3f13bc 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 da1ae46c05e52e6e4029acba01e9ea7c894f0e98..92e1885d62cf635f93c3c4d542285519a6067ae2 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 13306b5b8217b644b6941cf8ba6eb3499eba6d7e..09fa60ceeba09a02aba265b036f2a67b66acfdbe 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 4dd7f0c828d144b41d957dbeacaccaee2359bbb5..77addc7dddc3f3ecad5dc92a17594cb2d8fc3e48 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 92dd605664f8ad8cb3fc7c9aa8ccfe56208c608d..271e94d8077e9c1531de0b9dbe65faebd9dac187 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 4056c47c5466322ebfe0eadbd912957208dd2a82..47efa923e22d35002405fdc41cc506e0293b94d5 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 d0c36eeb3b55eb7d5acc60d16c454a9ba4bfffa9..675986a12171ad36ca9ebf47d190f5b89a070304 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 07ab9b744de2b5e735d4996775ec5f2319e645ea..6eec6503afb341c855f96532389f01eab334b1bc 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 41015ee9dc7f5f6bb6c3d1defbfad5ccb1c0c47b..ce7e0487a3d40e38fd52da327bfc556be487155e 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 756d5102a129921f31e9cb4f371307e631abd3d3..53b4adcb5e57e1c83ef43f2c5b448f2a98eed464 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 1b0dec3f6343262b31da825a4a75728d057dc23a..5c6344b28b560062522b7cc49d81c919e695d20f 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 f7d1b101834fcd4bc8a0275259953f7ce875e597..3981ef1e9c2da08f123e2730653bb26d8280b960 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 614146a8ee97413693fedc04d19efd10e89bfd12..e9b365d3e51740aee5031290b651fe43da558da0 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 a060046c61a269f2775ddce6de1b61e829fb47d3..6faa3e960278e01f328db539642175503412a08b 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 05365b8ff757c959d6a83be96cb6447b9082aca1..69e22afe39c1672032ea467cf6391f2d9d7eb667 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 053581a3a954f2a1283f05250f7e1eb3e2bf4947..012726c2b5161d8d2dfe79af9a2a05c9a7932f19 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 a7c413064a46a9afdd5f07ae2ca614ebc37b09d2..959ffd45dc34dd614d2575112289e2379e866a98 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 2a31c34c090029160be7dd9699af03f7064d0f64..2baa1fce0952ef00e79618fa8d8b48caf9f45e83 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 a70f4bcf6a9a3656073ed48bff4636060cba74fb..817ddb43306b779731adb4d7241e88e8acabdc59 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 000fd046233b2d7362515c596f55a78013329dfc..511ce50752076c34ae22d9c4fe85bff97c64b52d 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 3a230c4a10293617babdb3dda655d9043582fc62..721ad4140415538963b1d588a08d0c204bedd620 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 8094f66ac43e282c6df4562836c705ecc6b2ec63..2b6dbed7f8d4de4df29984e8173cef007818c589 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 6b8daf81ed96d751b3870a785c59f2e48648594f..33d4082a631d1e6553bcfaf992a1fd5e16af5e2a 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 7b07d757d81796b82ea5acc1d142958efe7341ac..79005e1f920b0c31a889bd34d6d48a75ac2cafe8 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 b972ee855d0185ea3c69275c546ea2933a8167f1..bc72f2dae4c57402dce24dab4e98335438e8e726 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 028adb1623ac2afe53e9c1b34fc91b043beecfa3..84993a01809c5d84815ef0533a4a15ed4c18e5b1 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 ad01b1b2c65642a7202fcfd9108421779e9555e2..d042eed158a4f5550bedeead4628fb920fcf1cba 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 26cb6eb0a45093c43e49059eda861db12329425c..9f9f60b8657a0892a2706da375a53e3d6fb8edfb 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 c93b6df863f094aa2280bfc0ab9167ff4c9a2b48..075384e25a43841c485798533f8d38532380ea6c 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 0ad1616833a671942b3ccadd6a37702754b441b5..c3d38d6587efc4aca0384666e063a1a05d5e7514 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 f1516e26efb033a9cc7b2add0fee3683d9594c23..a2c9ffed8e8f227eca02139db41f32629430f8d0 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 5daf902b5a73d8c3b87425145944f55d3f7d9fb8..9d7168d3784bb9f2064e3b8359fe2a6fcf2dc375 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 3a1b75de08914b827685231c2aa2b9be11804002..fa82ec25921dd314ccf8682cb10d4b00ca3eed94 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 ddd04f0ef5e1ca30a18d72e4477de221c199503b..5b298a8c2e244a07f8e5372eb65091d6cd5e54b3 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 444e811611fa3e56acd2b927d05c69d918c0772b..ceaf7e5348efff1872e58c05e878f87a6761d82b 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 2b4ae21d3f926324984cda4ea767479a2056560e..a5d5188b1c79a27f90be5c44f30111d50f115d70 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 f7587b4130238b99ae729961fa45ec3e695af344..1d23c658b5e8a361277e76fcde2c4e835e3888d7 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 e65b7e680939eb0c266c963e4ee10e41df2f3190..f90161345c989a252800419cff9d140aa64ec85f 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 17dd6372fd197980ade38c4e755251063b1aefb5..4c3466cc55da7c270a8c44b42d2ddd1010ded880 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 3fb6463376aa78d5fa1915af16ed6d469217e3b3..2bb43aabb96d3a06c3ad8c2e1af5a3d841ab72fc 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 19e49832d819f9bb1f9819a20e14a2051028da89..a9f427c3f7d62b472cd61ac2442124a44b072cd7 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 ca65a82c4938273efca8667fcdace633f33404e4..220e2b3a589f0e797aa5d80991e05a107169778e 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 bf33680f8621474107c737066808ed821a50114a..59f5b80431406b019fa354ce8abfd58c7bf10bce 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 04973ed9a706ae8c6d47ecba03912103e3eb0903..bb5ce3410871ff7998c992634f70362f2dac190a 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 c8dd54ea8907ee4db0456af153023fd8791294b7..e268f8341f3500ab843d806cda416227c5406915 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 a65f6998e4d6c843b1729ee4956888e42e728545..a51ef87a3f86f80fdaa1b0cc6d6d5c3122fbed62 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 db03b1bbe21ee95f09d61f7711b9e4c2f8bc33a5..04951cdd20c8a924fb44d9b51cf9a4c813cd17f9 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 ed7af69394bd465918e24c681fc4088930d051d1..d11c35285681745e5d32f90fc2c744127f293509 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 5790a66ed30b6c14da3db6f34c577077c6408142..d17c64a2e4145b9aa578981f1adc2d5166a5226b 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 668659c09dd08811036fdc774f0c2d538a3c96e1..2f89f4c2f0608aab9bae6ad688795e38f8f71608 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 4a97b1ec994337aedb1f48d0ea5bf70598adda2b..93996e839750ee92e6e5f325f96304806c26dc4f 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 c8e334ae5ec59c6c94140ad88406557b675994a7..8e89bfddbc1a4e30e996f806966d5cb6c3669669 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 2fde7522dfb442ac29b5237a588e337b2d3a391e..5ca29341b8a521385f4f0b9cb2809663e39869fa 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 ecf5472ab0d109796d5d9c533fd3cd819ee2417f..ca71ba4639f05e4ccc6f09987740745be944fbdc 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 5aed410ef77c42c6074acbbadac90c4ac837e6fc..040d7bb552d0d9f71022acaa64949e8009d4fdd6 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 7e5b72aa987d4be9408953f92b76804485c99434..303eb9267c05694d97e9bf8301fccc01e959cd95 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 789924e4f5948b5182087744c9a442c37f78aacf..5039e4359f0858e66aac76a35abbcc3bf4c12bc4 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 56a89eeccb9a26a7e10ea2a9aeb600ff214f73b7..1c5e118fe975ea1db0182d28d2cc69a2b0e74a3f 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 1031f95bbf3738b890c538dab55d7c0deeb447dc..8a58f4d2f275d91fc933fd917d8de0292de77393 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 1558f7592f33bf0232b3813064dc20e82cd81eaf..ab1eb7d37e0f936f5d8e3e7a8f2a02df54b75c69 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 7ed891c1f2b5d84822138dbf0360741e76f0588a..163d54dc1f37b6591e149d9de7135af5218924e7 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 92133ed381d638932c898f104b12de92d945f195..aa7d1c8ac1e6fb09aa6ebfa7d42b3a5ae8418cf9 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 5d909dd2796ac87abfc43360be6596c0b1e1e11d..a300e02bb8fed3f3e0ce8593dabfe1543c2d0b21 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 94a28101d54851c3ffa473979700068aa0c7ddc6..085da5cfad057e2307107c473f2dd49da2db60b0 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 b7b7a724364125700428b40cc76954b6a6aac361..4ee49f4aec2a44dd86d7d1526ab12816904eec54 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 ac5580ab6fdd3f2ed536d5608be5bebd8f9afb77..0dd35eae8b5474ccb4192b88a340e971c06c9e0e 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 496ee3a4236231104d0b550a7a78e956d676073b..466b493f6f427e0ce17a59661ebb318d8ce4ea91 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 c5489f78ead9381e379944fb49554ba28b5d9870..e01d3f66522df0390a12dbdf10a86850f39e1789 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 93d440ead4c2ebc9760434f8f08757134b270239..0b9b93e7ff521bd9c0d71c6341d04b0f38ee424e 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 8ead3ebe92f3a9d8dc70cb6d9719742c45def90e..02bedae933c0cca1a44229d4e36232a2ffa9c001 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 0aaa57fcca326196526f7abc554db57b8aa505f1..1b701aa48055cca8aba0170c5e32267c8317dbc5 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 a3f307fb40ae1336c1b8e769f5cd682d867fad60..3ee3175124c128a3cc61fbf7747cf7825eb93aaf 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 b52405d6c10cd9fbac9c4a66e2bc70dbf7e72bf7..8ae789e0f957707b9a1ffe0e831d6f43f68178f7 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 cda52183223b97a8f8756c6fd7dade9722c1e2ff..393b66ac684246ce9fc338a72324bb979fbbe86a 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 bbd237cb10ea0a11cefad72488bd4ac63afaeb22..c3b8d1312e53f94de9d29fe1ea3a9c6b2cfc89fa 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 7618deceb6201ecf1baa9c22cb96d4d7f0ec482d..e399698d797ad3b86e8e23415db9609635176e7f 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 9e6542dfd2932364a070999e83a8cb04922ee632..c283d48473cf35877d50511ec1fe774b97dcb462 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 07cd1703d74e6eb809e5e08561cae2e3197a0b2e..1f376f666de80d68cc82a1c8794c92f2c0eaff34 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 c7e96cbb106cb9dde235f121a03781bbcc99542f..0f18ecb3068c538b7948b34791346bb30f3c996d 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 6dc2c0e1a943957b8fa947e7c61e9709794dde90..9818ce81aa99172346fb703aeec7d821f21942b3 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 40d1423006d9aed543b6a6305ffea9ab4a74ecbf..c5dcde360c584991f427a5ec8eb3b4015aba35dd 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 efd6ed38cfa2315f8ebb039e3c9950037b013c03..37eb7ad7bcb6a6ac0fbe217a2a494a19c14fe5f3 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 6afdd12b1482497efef87be9a4bee424442ea013..0483498764931fa533aeb3bdc9594bd844525534 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 b5bf076015771e81b74418113437a3b85880c9ef..a45b596142851eacd4977c09c325da991f199dad 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 0664c20e2792139d7863fb0be055e32fefbc9e05..df55b8a0dd9fa11d8706a64ace6d1479125c5ab6 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 932d64309ae3cd62aed1df6437eafef73074ca89..37a02d61116d5db88473a7fbfa62e549385d2eae 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 9e0202ef81990a9b72f59b09b95d3260ae57a825..6132caa2ed3151cb2a4a0a42dabb90c32cfcf58a 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 6d1b189be323c92235abf44187ebf528d6643ff8..611415692085c40ce017fd77a20774ac94a31055 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 3e17c8983fac86b18aa6b352802a1c63b9f634cf..d73495a2745790fa8e5a6be5a72a4440d1dd3395 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 bec0926d8d85c83e4e1d8408d3710c89cd72b708..39e612bb81cbb461742806c8db230951d8610685 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 5155ce3c1187ad4c61d94a4b95e5603bddca9061..032dd2405bc210d32ac6ac1dde0747a68f5ee774 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 98c5760c62587acb166c418b4807d07f946d55be..ff28b5449c4a3dfe7038842b59681a70fe2bcc4a 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 3b49caaa61c3558bc6e5c95aee58a22290947eee..e5df82c614918556e3d81a02a7a3c94ffa438fa1 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 eb197d050f6bc85f0884a5e8cffddea3c4e106eb..6048984779382d8392720e593f30e5c59c781270 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 7f3056a94f10d782fe7e323c50a0b8dfa186a1d0..6d4aac742c48ff7c7a2efba07d3a6fe1074921e1 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 9c3656dd3497e577346b46ce0446f28cf139a06d..405e850eaab708fdd604b0706c0a2632dbb0a171 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 28a2baec1efa69722ba524e90edb1b8b9d4da564..da4e68fa9d1a9ae27a366f7c122900d640c377df 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 be83bcb2a2e2fcbf785af1dfb607f9bb4f67edc6..f283f54ba21bd2c92614fc6afd67b69f540faf73 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 018f343997092ea5c1c1a100f586754235a7679d..7adcf822b4a0edfb97905def6ccc586542878d63 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 1f8b5305bd7d44965f25e767825d5e802d49a790..8ea03f494ed27fabd7388afc830e5b81a1687a9d 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 9264ba669ed5b34dae874951ec7bcbbc9d478508..8bd2f766d8c2e75c69b00d93b900b5251c1a73c5 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 0915ac1bd97c8df856bc76f8b81f765a65b6f2b1..9b01f4b3159759f69e7e1069bc54cf61eff01384 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 03c19157eb33ca0d7b2877cd021cae320ed5e7f2..992e77729756d7f584030f93a8f4747da3d7395e 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 f1d5e29ae6308534d6f28c2b495f0e757b563e80..3805d42514a9132d44b59fa0fcf0b039063177d5 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 dcd0f39432d20ed63eacebd195b66f15a148a663..afd4bc3d70636433b1f887f4926ccba3eb484df9 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 d2e77b8772ce329b6de7fc23246f2ea157e1f68d..e06bc3c8860c23abb50f1ef2d65990e9453bb2a4 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 6211c5969706c1c279ce6ed286474b462b79138b..c0e57a2343e6bccadd2a8a7622d19f0613dc9cf4 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 85223e736c8942959b079c2791740bde2ac57cdc..d8c0718291acfbea5607769b840df71e2b1f2c1c 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 a5af9642872343166e61db758688da098673e6bc..151dca67a3fc4b0a68c3f585b6cab925a476125e 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 2c8d5bdbbf248ebf42fb77cfc16b971e5c13b62d..3b9668b04af5288c14f13ee1268459ce50c4e45c 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 bcb21040a6b3d55234c2964bb220066cbfe51496..fc23f5a6a95577067144f9a81d6bd9691ac58588 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 4e690115084feb3c39938368db6b7d264470168b..7cd8ef6b6e985aa61c61f1dfb2e115b65f4ba55c 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 805070251d18d61b004832c504f65bc12ddf7d68..489773f83a56143004b7c2bcb2c55e5f14679274 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 cef78cc730bb3ff6bc4d4a8b9e6d1c262994b38f..6d292404b1772048fb6c68fcf24f81729ddf5127 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 9149fbf21391820a8a18685822a822da6b145949..e1b35d1d12d3c4ae61ead50147d182aa366c8e2b 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 f797bafee24f1c6c6ece5dea80e487b8a5f86d14..0a908dd9d26fafc7df4b18925790d18a4dd10577 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 232f29649509a6164bff58f021f774fa4f64beac..8f4282d1839b04a9425f71da3e246f458f7d9a14 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 13fc872f8623b7c72699c98ea4f9470dc45f5ef1..8b0b7632d47e6f36736917995367dafb70660fb1 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 2a9b77c3947c9757ba8fadc43f3d11feb789cfef..6ec8b37227f9356191c3f1a70c7a449af66a227c 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 8e268752d5f889131ade395ca86dd8d546d630f6..694cb0297bf95464458c63e741884fdabc3f260a 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 bec337749cde39c263124905fd93663b9c70a18e..458d61fef69bf9e240f15add3154d110e3e604c6 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 94a0c2896e008acf2bb62c807c06f4d959bd4f6f..4884c3ae652774359699fa958af2f777a9edbf0f 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 421ef9a4a71e239ba313477d0d9b9fa25fdff714..0894f663e61ea5bde95f1813c92386d36f38e251 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 f0461e2982cb625f4c292201b3c077c533b596ab..fbbee11b245596897543b7e1594735154d14cd74 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 2012736f81fb363ce896fcc0baaa3cefb4289ff7..2f88ef7957abd3e0bafb0994b47d9968cad6bde4 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 32dfbc4e77a81f8f46f54f07556ae043a41f0c79..568d88e50a706be272c4c7485c48488ecab993c5 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 b31c8ed3b0744ad28a739152680c4774c08c4173..181f7adf63329b38431b424f9784f4126757edbe 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 b2bd1d55f7097cb7d077c2e9f3920f640b70fcf1..93099da0eb0181694a7df6b5f9c75bc11a3f40ea 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 6cf2b6c34cc055c04bf271f941b822b197495595..79b714a22b321ce56658cd5226e82cbfb8fc9788 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 2dcfa3ddd20fb68606b03af241f917cd85b064f9..05eb949a62ff0b2d64af5c73e435256f135e9b30 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 49c46aef4018345d7ee1b3caac3dc3c7e056c81d..d478999eec07fa83877bce5e076715ddcf0d6bd3 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 9e461109d9d850ed0f683040651ae174a7e54ffd..e7c41235d84c27d526c2a235db7e105b56c5608a 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 c8bdf7a960be0c6ad078ec407b164d5c8c8af5b2..fca5cf85bd162df03b4aafac4080ea510d8ea0b4 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 a6845b1dceadb8b9aa82a2e4e4ab2ce54dc3d729..a71cad06ba3c2bc0ba1fcd45294a48a6f4340bd0 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 61e1dd605d0acc9f23fabb270094b3a5c8d9e778..5b14028b31e57c8288eecb730fef2ce6148c786c 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 2fafb3ecd5fb32f6b406e67a2c023a75e1529364..adce47bd0bcff29ce46a5cfdf115ba5f8aa7bee5 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 914ab7b249597bc8fbd035ae88a71c4b1903a8eb..edde6817d6135c8fa98b0e6ac105a19b0caba002 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 29b9ac2866266b6439baf95154f147ea44241e67..eb64c66a8a1cd314a0171fa2da17f43081807eec 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 b896b7f23d74a1ece8695c72f5b65ba38abbfd69..b16eacea2fe4c4566a60dd40faaa2969267607c1 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 52d4ac37ea4c5aa116e211a203f1b2bca3860bbd..cb6167a7b9f5dba4bb70ed8f03b4aa80eb66b4b3 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 9442815771d4ed60806c59dfe7b5595de3e304bd..73d2d795fd796c5404161d8b8cebafbd590319b9 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 aa5e3feb57a67eee540080b9bfca979216fd1454..5508d39c3570c445a39c10a6ad15bbaf53c691de 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 54871040f393428f3febbba17ab0374de14b1934..8598b4ccd8a34c43b0c11e7af728e8d34f599933 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 a528a399277bf1ea540525a10006eb4155ce0a80..17823d09074137027beefedbbe9ca535a79d0a02 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 eac7df4cadad4e1c8376918f53401439748a6094..e7a4babf303f8241c85bde61cdea9737fd55def4 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 d870ee8023bc22e5d4b8f36740af7f299d2aa91c..f0db1726fdfb6d527bc8bc5579b6adc7d4ee786d 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 d1b9c31d37e9eff7e4d76eeaf4ac4c28b410d762..1987cd160691f4e89e35cd4cea751819e40711b8 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 7b997afc586489cdf53d657b2495c830134953a8..156449c48ec60712acb6dc2c06f3ee023fdfe57b 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 36c8240990de3b805a00248f573fa8a6f2cb81c8..a4af999cb1efab787a828f6582e6d0af61d39bbc 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 5501333ef0cedbc522ab834f7159f8e4fdc9f96f..4d0de6c770c1fa531a582a4649b025b79446afb1 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 e54590e42f3e113a07f084b57bde4c1749906abd..90665af66b00d7d6e5a1726142050429bf64ef3e 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 1bc45bbd74c82432ed153eb420b8ce62358cf775..0cb748297397bdb75c8ec7c04350dcae384376bd 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 e9c4fb97d537b8d54b1a0b83ca8365f11306ab98..72f9393ea95e1d10c94ecc255d02e1b0b70f9431 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 020e647bbf89e2cff943ae98c1b83929557fa746..7fa2129bf64f8762fb524472b738529e3cbbf78f 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 a01a11db2f44e056e9fd9cfa691548bf3eefad2a..0ea3f104d21a358a79dc43766aa3f97ff583eaa4 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 861e0b428c38cb6d6e4579261740c0949c390a8c..f6cb071e39ba73bfa956977dfdcfbcf5bcac3ad5 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 51b76e9b0b49e69e44aad8fbdf280f89624d59be..120c4ea4f61b0f698df54885bb7a7f61625f8e8c 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 9f35a7b8920633f9c80299551528fd766cce27f6..98d15d12847af86a80e1499ca5d7b1c5f8fce284 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 a5fdfd5543b8d3ac1b5f0ec46807840cb573f7c5..ca79f6edb44732c28ad63de681c45eb5a38428f9 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 fc8bbd382cfb1158afef63d662df95ec35183947..5602e7bb9fbcc22424db5b7df5cf14c4f7846524 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 345c6e59ce8f7ea678e9945e27d787e9d1e4ca41..97d32f2883666096d24f3f0b6b8b7c71e1a0f1da 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 02a76fd9789ccc5d2b52359ee0b19cb812c2e683..ba72e57f7b739e9ed07446caaf76d757cff966ef 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 ed964c1826be12671db0bacbb15fc90709088444..2602fe49ada755edc2f14d108b4bba5e58811102 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 28d257bb7128ad766f2bb51b69058e6e6a617905..ed3dc6245957631bf67bd46a88f06c5fee99e0b3 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 9503fd41def09832f2f40ef69265aa6c2ac6be94..2e1bda47f49cbbf3b74081cd8ea28c12fff5a026 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 275e6ddcde5d7fcc07f43423815d5527fb56127f..38d817649849c01f79e51c380a4ab6bc5e23a0c8 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 24558b81294aa74e23ab56f9f5b2e5cb2db84090..28cf756c607279676b5a77288c7150287defbd39 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 1ba8cbfc000bfb57b638ae8dcb5883d4099e5b1c..f4ba6199bbda5c8c331ef5a01a748954cd44b5dc 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 5f629f4ad7c3cdb447803b0cafdb213ff1848d32..09467879b489ad480f2b96300df5e89b8740d246 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 ba9edaad53d588409340680fb870a0182cf8b51b..9b590459b574c3392bdfb933cb71f8566841a78b 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 cc7d2391a53d9b517e875927e3660d357a81c3a3..0dba15f07fffd2bc0ec14a4b8e3157da13b33c30 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 b9ac60aa2fc937b8fe86bbbe279695f17992de56..da128c19a11ea887ab32bf1f1764d0f57bb73380 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 024f39093cc25eee88ce5610d1cd26c455779627..85c02716c00e53f8c7b90404d930c7ac6e545906 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 2ad22eb518fbf7896d1850c4b3d5bd4ab7e4cfca..39d880546ba6157c1edba366641c0acee749f501 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 3901befc975ab46344b6e6c1919687f9b2dc2791..faf35cd9d4b7bd0c49accb3977ef42f8c5e32d21 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 3427dfb84f1b0e75777642c18899837eda14e480..a313a5c5e1a9aa683afb115b6d84f2497ee412fc 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 6d12f4908ea6ed284717dab3c7c2f6d2e21680d8..75b2a664e05b07eec84a77db8ecede553dcb85df 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 4a66a9412cf031db298d8280d3841c22fd74f6ce..c544a2d741fd37475a0fa7ce3e01542d0e84c6b9 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 00a3804453490444f4320b66ce91bf367563d9c2..f154d4e3a8e87551e4d7bbb934176d15010f2a2e 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 e2b675dfdfa70bb85f5c2f25022a35ac0714fd93..87f61b75af8a227acbd73066a636199372f2103f 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 f0874fdd8461773f26efd8c70eeeecca03f6f98f..8b008c3844b48e00ff753ed1d4f1d327290fe91b 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 729700992e4a1f678539198681cd5e5753b0ca4d..d60d520e4460e7a32f7f7b47f6fdd5729b99d436 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 c13d3c9af1bd361a9e10febbc4056dc3323f7ae4..4a062a93e263e0d5ab9104c38e721ed4cd5904a2 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 8e499ea842e91a253898f50a3f3a8ce96a340df9..1c9bd7e357a2fe9de7a71c8b995ab05c4a1c4d55 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 2dad93b44f3ff3bfb211d9eb894e2629252487e9..54bb57a9410fc5ef333edd9fae0784ee9b5189ea 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 ff301c26196ce77055c6fc0b42dcc3c556ba60b5..a6ac7dd0f1360f9bedc6ee3abf95848eac736200 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 c8c6e074128943d77ef706fbb7f4005e6ade40aa..27c011b63a88b7e402d8b9f8c16b146ce2eaa9e2 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 25d705223186d32669b9ca22f0aeb3d08d40bc85..ffaeac67e6a2112d318ffcc04e531052a1fad5fe 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 062e38ea6735f94c4dd2e841a33ae8135668df41..5845cef88024fe0062d84ecac286f82421e4d9c9 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 da520b579e7a91887142a8a672e49d3f92df6058..2570b9f4d1ea819072cb7b8e1d5c2a0b209ec830 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 42b399d7e52d7e7c4a483a6ebf233159eac929df..d896739d7ae3813d2336f3da9bf544766497bb85 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();