1 // { dg-do assemble } 2 // GROUPS passed old-abort 3 class D_Interval; 4 5 class Date 6 { 7 public: 8 Date(const D_Interval*,const Date&); 9 private: 10 const D_Interval* interval; 11 }; 12 13 class Time_Interval 14 { 15 public: 16 Time_Interval(const Date& start,const Date& stop); Start()17 const Date& Start() const { return start; } Stop()18 const Date& Stop() const { return stop; } 19 private: 20 Date start; 21 Date stop; 22 }; 23 24 class Dated_Data 25 { 26 public: 27 Dated_Data(const Time_Interval& dates); 28 virtual ~Dated_Data(); Dates()29 Time_Interval Dates() const { return dates; } 30 private: 31 Time_Interval dates; 32 }; 33 34 class Raw_Data : public Dated_Data 35 { 36 public: 37 Raw_Data(const Dated_Data *source,const D_Interval& period); 38 }; 39 Raw_Data(const Dated_Data * source,const D_Interval & period)40Raw_Data::Raw_Data(const Dated_Data *source,const D_Interval& period) 41 : Dated_Data(Time_Interval(Date(&period,source->Dates().Start()), 42 Date(&period,source->Dates().Stop()))) 43 { 44 } 45