@@ -49,12 +49,20 @@ namespace QuantLib {
4949 class InterpolatedPiecewiseZeroSpreadedTermStructure : public ZeroYieldStructure {
5050 public:
5151 InterpolatedPiecewiseZeroSpreadedTermStructure (Handle<YieldTermStructure>,
52- std::vector<Handle<Quote> > spreads,
53- const std::vector<Date>& dates,
52+ std::vector<Handle<Quote>> spreads,
53+ std::vector<Date> dates,
5454 Compounding comp = Continuous,
5555 Frequency freq = NoFrequency,
56- DayCounter dc = DayCounter(),
57- const Interpolator& factory = Interpolator());
56+ Interpolator factory = Interpolator());
57+
58+ [[deprecated(" Use the constructor without DayCounter" )]]
59+ InterpolatedPiecewiseZeroSpreadedTermStructure (Handle<YieldTermStructure>,
60+ std::vector<Handle<Quote>> spreads,
61+ std::vector<Date> dates,
62+ Compounding comp,
63+ Frequency freq,
64+ DayCounter dc,
65+ Interpolator factory = Interpolator());
5866 // ! \name YieldTermStructure interface
5967 // @{
6068 DayCounter dayCounter () const override ;
@@ -78,7 +86,6 @@ namespace QuantLib {
7886 std::vector<Spread> spreadValues_;
7987 Compounding comp_;
8088 Frequency freq_;
81- DayCounter dc_;
8289 Interpolator factory_;
8390 Interpolation interpolator_;
8491 };
@@ -91,18 +98,19 @@ namespace QuantLib {
9198
9299 // inline definitions
93100
101+ #ifndef __DOXYGEN__
102+
94103 template <class T >
95104 inline InterpolatedPiecewiseZeroSpreadedTermStructure<
96105 T>::InterpolatedPiecewiseZeroSpreadedTermStructure(Handle<YieldTermStructure> h,
97- std::vector<Handle<Quote> > spreads,
98- const std::vector<Date>& dates,
106+ std::vector<Handle<Quote>> spreads,
107+ std::vector<Date> dates,
99108 Compounding comp,
100109 Frequency freq,
101- DayCounter dc,
102- const T& factory)
103- : originalCurve_(std::move(h)), spreads_(std::move(spreads)), dates_(dates),
104- times_ (dates.size()), spreadValues_(dates.size()), comp_(comp), freq_(freq),
105- dc_(std::move(dc)), factory_(factory) {
110+ T factory)
111+ : originalCurve_(std::move(h)), spreads_(std::move(spreads)), dates_(std::move(dates)),
112+ times_ (dates_.size()), spreadValues_(dates_.size()), comp_(comp), freq_(freq),
113+ factory_(std::move(factory)) {
106114 QL_REQUIRE (!spreads_.empty (), " no spreads given" );
107115 QL_REQUIRE (spreads_.size () == dates_.size (),
108116 " spread and date vector have different sizes" );
@@ -113,6 +121,21 @@ namespace QuantLib {
113121 updateInterpolation ();
114122 }
115123
124+ template <class T >
125+ inline InterpolatedPiecewiseZeroSpreadedTermStructure<
126+ T>::InterpolatedPiecewiseZeroSpreadedTermStructure(Handle<YieldTermStructure> h,
127+ std::vector<Handle<Quote>> spreads,
128+ std::vector<Date> dates,
129+ Compounding comp,
130+ Frequency freq,
131+ DayCounter dc,
132+ T factory)
133+ : InterpolatedPiecewiseZeroSpreadedTermStructure(
134+ std::move (h), std::move(spreads), std::move(dates), comp, freq, std::move(factory)
135+ ) {}
136+
137+ #endif
138+
116139 template <class T >
117140 inline DayCounter InterpolatedPiecewiseZeroSpreadedTermStructure<T>::dayCounter() const {
118141 return originalCurve_->dayCounter ();
@@ -192,4 +215,4 @@ namespace QuantLib {
192215}
193216
194217
195- #endif
218+ #endif
0 commit comments