From a5e7052ae66f48d63eca596613f97a1ecf5da056 Mon Sep 17 00:00:00 2001
From: Dmitri Naumov <dmitri.naumov@ufz.de>
Date: Mon, 14 Mar 2016 16:37:45 +0100
Subject: [PATCH] [MaL] Use unique_ptr for PIMPL in CVodeSolver.

---
 MathLib/ODE/CVodeSolver.cpp | 7 ++-----
 MathLib/ODE/CVodeSolver.h   | 3 ++-
 2 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/MathLib/ODE/CVodeSolver.cpp b/MathLib/ODE/CVodeSolver.cpp
index 0689a837eeb..c4cbde8da15 100644
--- a/MathLib/ODE/CVodeSolver.cpp
+++ b/MathLib/ODE/CVodeSolver.cpp
@@ -308,7 +308,7 @@ CVodeSolverImpl::~CVodeSolverImpl()
 }
 
 CVodeSolverInternal::CVodeSolverInternal(BaseLib::ConfigTree const& config)
-    : _impl(new CVodeSolverImpl(config))
+    : _impl.reset(std::unique_ptr<CVodeSolverImpl>{new CVodeSolverImpl{config}})
 {
 }
 
@@ -364,9 +364,6 @@ double CVodeSolverInternal::getTime() const
 	return _impl->getTime();
 }
 
-CVodeSolverInternal::~CVodeSolverInternal()
-{
-	delete _impl;
-}
+CVodeSolverInternal::~CVodeSolverInternal() = default;
 
 }  // namespace MathLib
diff --git a/MathLib/ODE/CVodeSolver.h b/MathLib/ODE/CVodeSolver.h
index 4c2d3f5eaa5..fded9177c06 100644
--- a/MathLib/ODE/CVodeSolver.h
+++ b/MathLib/ODE/CVodeSolver.h
@@ -48,7 +48,8 @@ protected:
 	~CVodeSolverInternal();
 
 private:
-	CVodeSolverImpl* _impl;  ///< pimpl idiom hides implementation
+	std::unique_ptr<CVodeSolverImpl>
+	    _impl;  ///< pimpl idiom hides sundials headers.
 };
 
 }  // namespace MathLib
-- 
GitLab