diff --git a/MathLib/ODE/CVodeSolver.cpp b/MathLib/ODE/CVodeSolver.cpp index 0689a837eebb289ac26a11bddca7f01176194e5d..c4cbde8da151ae751ac86da0b6e99e3ecd652ca7 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 4c2d3f5eaa5664a9716696179ebd1c06d241af9b..fded9177c068f76c5dd9a653c557fa673318b8b0 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