@@ -49,12 +49,23 @@ 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 a day counter.
59+ Deprecated in version 1.41.
60+ */
61+ [[deprecated(" Use the constructor without DayCounter" )]]
62+ InterpolatedPiecewiseZeroSpreadedTermStructure (Handle<YieldTermStructure>,
63+ std::vector<Handle<Quote>> spreads,
64+ std::vector<Date> dates,
65+ Compounding comp,
66+ Frequency freq,
67+ DayCounter dc,
68+ Interpolator factory = Interpolator());
5869 // ! \name YieldTermStructure interface
5970 // @{
6071 DayCounter dayCounter () const override ;
@@ -78,7 +89,6 @@ namespace QuantLib {
7889 std::vector<Spread> spreadValues_;
7990 Compounding comp_;
8091 Frequency freq_;
81- DayCounter dc_;
8292 Interpolator factory_;
8393 Interpolation interpolator_;
8494 };
@@ -91,18 +101,19 @@ namespace QuantLib {
91101
92102 // inline definitions
93103
104+ #ifndef __DOXYGEN__
105+
94106 template <class T >
95107 inline InterpolatedPiecewiseZeroSpreadedTermStructure<
96108 T>::InterpolatedPiecewiseZeroSpreadedTermStructure(Handle<YieldTermStructure> h,
97- std::vector<Handle<Quote> > spreads,
98- const std::vector<Date>& dates,
109+ std::vector<Handle<Quote>> spreads,
110+ std::vector<Date> dates,
99111 Compounding comp,
100112 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) {
113+ T factory)
114+ : originalCurve_(std::move(h)), spreads_(std::move(spreads)), dates_(std::move(dates)),
115+ times_ (dates_.size()), spreadValues_(dates_.size()), comp_(comp), freq_(freq),
116+ factory_(std::move(factory)) {
106117 QL_REQUIRE (!spreads_.empty (), " no spreads given" );
107118 QL_REQUIRE (spreads_.size () == dates_.size (),
108119 " spread and date vector have different sizes" );
@@ -113,6 +124,21 @@ namespace QuantLib {
113124 updateInterpolation ();
114125 }
115126
127+ template <class T >
128+ inline InterpolatedPiecewiseZeroSpreadedTermStructure<
129+ T>::InterpolatedPiecewiseZeroSpreadedTermStructure(Handle<YieldTermStructure> h,
130+ std::vector<Handle<Quote>> spreads,
131+ std::vector<Date> dates,
132+ Compounding comp,
133+ Frequency freq,
134+ DayCounter dc,
135+ T factory)
136+ : InterpolatedPiecewiseZeroSpreadedTermStructure(
137+ std::move (h), std::move(spreads), std::move(dates), comp, freq, std::move(factory)
138+ ) {}
139+
140+ #endif
141+
116142 template <class T >
117143 inline DayCounter InterpolatedPiecewiseZeroSpreadedTermStructure<T>::dayCounter() const {
118144 return originalCurve_->dayCounter ();
@@ -192,4 +218,4 @@ namespace QuantLib {
192218}
193219
194220
195- #endif
221+ #endif
0 commit comments