@@ -60,45 +60,52 @@ class SensitivityScenarioData : public XMLSerializable {
6060 };
6161
6262 struct CurveShiftData : ShiftData {
63+ CurveShiftData () : ShiftData() {}
64+ CurveShiftData (const ShiftData& d) : ShiftData(d) {}
6365 virtual ~CurveShiftData () {}
6466 vector<Period> shiftTenors;
6567 };
6668
67- struct SpotShiftData : ShiftData {} ;
69+ using SpotShiftData = ShiftData;
6870
6971 struct CdsVolShiftData : ShiftData {
72+ CdsVolShiftData () : ShiftData() {}
73+ CdsVolShiftData (const ShiftData& d) : ShiftData(d) {}
7074 string ccy;
7175 vector<Period> shiftExpiries;
7276 };
7377
7478 struct BaseCorrelationShiftData : ShiftData {
79+ BaseCorrelationShiftData () : ShiftData() {}
80+ BaseCorrelationShiftData (const ShiftData& d) : ShiftData(d) {}
7581 vector<Period> shiftTerms;
7682 vector<Real> shiftLossLevels;
7783 string indexName;
7884 };
7985
8086 struct VolShiftData : ShiftData {
8187 VolShiftData () : shiftStrikes({0.0 }), isRelative(false ) {}
88+ VolShiftData (const ShiftData& d) : ShiftData(d), shiftStrikes({0.0 }), isRelative(false ) {}
8289 vector<Period> shiftExpiries;
8390 vector<Real> shiftStrikes;
8491 bool isRelative;
8592 };
8693
8794 struct CapFloorVolShiftData : VolShiftData {
95+ CapFloorVolShiftData () : VolShiftData() {}
96+ CapFloorVolShiftData (const VolShiftData& d) : VolShiftData(d) {}
8897 string indexName;
8998 };
9099
91100 struct GenericYieldVolShiftData : VolShiftData {
101+ GenericYieldVolShiftData () : VolShiftData() {}
102+ GenericYieldVolShiftData (const VolShiftData& d) : VolShiftData(d) {}
92103 vector<Period> shiftTerms;
93104 };
94105
95- struct CurveShiftParData : SensitivityScenarioData::CurveShiftData {
96- CurveShiftParData (SensitivityScenarioData::CurveShiftData c) {
97- shiftType = c.shiftType ;
98- shiftSize = c.shiftSize ;
99- shiftTenors = c.shiftTenors ;
100- }
101- CurveShiftParData () {}
106+ struct CurveShiftParData : CurveShiftData {
107+ CurveShiftParData () : CurveShiftData() {}
108+ CurveShiftParData (const CurveShiftData& c) : CurveShiftData(c) {}
102109 vector<string> parInstruments;
103110 bool parInstrumentSingleCurve = true ;
104111
@@ -115,15 +122,9 @@ class SensitivityScenarioData : public XMLSerializable {
115122 map<string, string> parInstrumentConventions;
116123 };
117124
118- struct CapFloorVolShiftParData : SensitivityScenarioData::CapFloorVolShiftData {
119- CapFloorVolShiftParData (SensitivityScenarioData::CapFloorVolShiftData c) {
120- shiftType = c.shiftType ;
121- shiftSize = c.shiftSize ;
122- shiftExpiries = c.shiftExpiries ;
123- shiftStrikes = c.shiftStrikes ;
124- indexName = c.indexName ;
125- }
126- CapFloorVolShiftParData () {}
125+ struct CapFloorVolShiftParData : CapFloorVolShiftData {
126+ CapFloorVolShiftParData () : CapFloorVolShiftData() {}
127+ CapFloorVolShiftParData (const CapFloorVolShiftData& c) : CapFloorVolShiftData(c) {}
127128 vector<string> parInstruments;
128129 bool parInstrumentSingleCurve = true ;
129130
0 commit comments