From 51274e71746af9a383f303913f7b4dad400ea0ae Mon Sep 17 00:00:00 2001 From: Luigi Ballabio Date: Thu, 15 Jul 2021 10:17:33 +0200 Subject: [PATCH 1/5] Deprecate obsolete data member --- ql/models/calibrationhelper.hpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ql/models/calibrationhelper.hpp b/ql/models/calibrationhelper.hpp index b085236441f..a7424a7f0bf 100644 --- a/ql/models/calibrationhelper.hpp +++ b/ql/models/calibrationhelper.hpp @@ -96,7 +96,12 @@ namespace QuantLib { protected: mutable Real marketValue_; Handle volatility_; - Handle termStructure_; + /*! \deprecated Don't use this data member. It you're + inheriting from BlackCalibrationHelper, move + `termStructure_` to your derived class. + Deprecated in version 1.24. + */ + QL_DEPRECATED Handle termStructure_; ext::shared_ptr engine_; const VolatilityType volatilityType_; const Real shift_; From 8077d228e40507e757d7d206ba1813d5a5df7097 Mon Sep 17 00:00:00 2001 From: Luigi Ballabio Date: Wed, 14 Jul 2021 18:42:53 +0200 Subject: [PATCH 2/5] Disable warning when default-initializing deprecated member --- ql/models/calibrationhelper.hpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ql/models/calibrationhelper.hpp b/ql/models/calibrationhelper.hpp index a7424a7f0bf..dba3a311444 100644 --- a/ql/models/calibrationhelper.hpp +++ b/ql/models/calibrationhelper.hpp @@ -49,6 +49,8 @@ namespace QuantLib { public: enum CalibrationErrorType { RelativePriceError, PriceError, ImpliedVolError}; + + QL_DEPRECATED_DISABLE_WARNING BlackCalibrationHelper(Handle volatility, CalibrationErrorType calibrationErrorType = RelativePriceError, const VolatilityType type = ShiftedLognormal, @@ -57,6 +59,7 @@ namespace QuantLib { calibrationErrorType_(calibrationErrorType) { registerWith(volatility_); } + QL_DEPRECATED_ENABLE_WARNING void performCalculations() const override { marketValue_ = blackPrice(volatility_->value()); From 2b65df0c976d56809ed659a3cb223524f883631a Mon Sep 17 00:00:00 2001 From: Luigi Ballabio Date: Thu, 15 Jul 2021 10:19:03 +0200 Subject: [PATCH 3/5] Disable warning when destroying deprecated member --- ql/models/calibrationhelper.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ql/models/calibrationhelper.hpp b/ql/models/calibrationhelper.hpp index dba3a311444..484c5ca9c78 100644 --- a/ql/models/calibrationhelper.hpp +++ b/ql/models/calibrationhelper.hpp @@ -59,6 +59,8 @@ namespace QuantLib { calibrationErrorType_(calibrationErrorType) { registerWith(volatility_); } + + ~BlackCalibrationHelper() = default; QL_DEPRECATED_ENABLE_WARNING void performCalculations() const override { From d656cd1dfb40c8f4e0b97b88e7c002c8e64e218b Mon Sep 17 00:00:00 2001 From: Luigi Ballabio Date: Thu, 15 Jul 2021 12:03:34 +0200 Subject: [PATCH 4/5] Try disabling deprecation warnings again --- ql/models/calibrationhelper.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ql/models/calibrationhelper.hpp b/ql/models/calibrationhelper.hpp index 484c5ca9c78..e6068eafa7f 100644 --- a/ql/models/calibrationhelper.hpp +++ b/ql/models/calibrationhelper.hpp @@ -44,13 +44,13 @@ namespace QuantLib { virtual Real calibrationError() = 0; }; + QL_DEPRECATED_DISABLE_WARNING //! liquid Black76 market instrument used during calibration class BlackCalibrationHelper : public LazyObject, public CalibrationHelper { public: enum CalibrationErrorType { RelativePriceError, PriceError, ImpliedVolError}; - QL_DEPRECATED_DISABLE_WARNING BlackCalibrationHelper(Handle volatility, CalibrationErrorType calibrationErrorType = RelativePriceError, const VolatilityType type = ShiftedLognormal, @@ -61,7 +61,6 @@ namespace QuantLib { } ~BlackCalibrationHelper() = default; - QL_DEPRECATED_ENABLE_WARNING void performCalculations() const override { marketValue_ = blackPrice(volatility_->value()); @@ -115,6 +114,7 @@ namespace QuantLib { class ImpliedVolatilityHelper; const CalibrationErrorType calibrationErrorType_; }; + QL_DEPRECATED_ENABLE_WARNING } From e398fc0f3f69969ca42cc411e88a18d0c40d0434 Mon Sep 17 00:00:00 2001 From: Luigi Ballabio Date: Thu, 15 Jul 2021 16:02:49 +0200 Subject: [PATCH 5/5] Remove redundant destructor --- ql/models/calibrationhelper.hpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/ql/models/calibrationhelper.hpp b/ql/models/calibrationhelper.hpp index e6068eafa7f..4521fbc0a93 100644 --- a/ql/models/calibrationhelper.hpp +++ b/ql/models/calibrationhelper.hpp @@ -60,8 +60,6 @@ namespace QuantLib { registerWith(volatility_); } - ~BlackCalibrationHelper() = default; - void performCalculations() const override { marketValue_ = blackPrice(volatility_->value()); }