greg_serialize.hpp

来自「CGAL is a collaborative effort of severa」· HPP 代码 · 共 480 行 · 第 1/2 页

HPP
480
字号
template<class Archive>void load(Archive & ar, gregorian::greg_weekday& gd, unsigned int version){  unsigned short us;  ar & make_nvp("greg_weekday", us);  gd = gregorian::greg_weekday(us);}//!override needed b/c no default constructortemplate<class Archive>inline void load_construct_data(Archive & ar, gregorian::greg_weekday* gd,                                 const unsigned int file_version){  ::new(gd) gregorian::greg_weekday(1);}/**** date_generators ****//**** partial_date ****///! Function to save gregorian::partial_date objects using serialization lib/*! partial_date objects are broken down into 2 parts for serialization: * the day (typically greg_day) and month (typically greg_month) objects */template<class Archive>void save(Archive & ar, const gregorian::partial_date& pd,           unsigned int version){  gregorian::greg_day gd(pd.day());  gregorian::greg_month gm(pd.month().as_number());  ar & make_nvp("partial_date_day", gd);  ar & make_nvp("partial_date_month", gm);}//! Function to load gregorian::partial_date objects using serialization lib/*! partial_date objects are broken down into 2 parts for serialization: * the day (greg_day) and month (greg_month) objects */template<class Archive>void load(Archive & ar, gregorian::partial_date& pd, unsigned int version){  gregorian::greg_day gd(1);  gregorian::greg_month gm(1);  ar & make_nvp("partial_date_day", gd);  ar & make_nvp("partial_date_month", gm);  pd = gregorian::partial_date(gd,gm);}//!override needed b/c no default constructortemplate<class Archive>inline void load_construct_data(Archive & ar, gregorian::partial_date* pd,                                 const unsigned int file_version){  gregorian::greg_month gm(1);  gregorian::greg_day gd(1);  ::new(pd) gregorian::partial_date(gd,gm);}/**** nth_kday_of_month ****///! Function to save nth_day_of_the_week_in_month objects using serialization lib/*! nth_day_of_the_week_in_month  objects are broken down into 3 parts for  * serialization: the week number, the day of the week, and the month */template<class Archive>void save(Archive & ar, const gregorian::nth_kday_of_month& nkd,           unsigned int version){  typename gregorian::nth_kday_of_month::week_num wn(nkd.nth_week());  typename gregorian::nth_kday_of_month::day_of_week_type d(nkd.day_of_week().as_number());  typename gregorian::nth_kday_of_month::month_type m(nkd.month().as_number());  ar & make_nvp("nth_kday_of_month_week_num", wn);  ar & make_nvp("nth_kday_of_month_day_of_week", d);  ar & make_nvp("nth_kday_of_month_month", m);}//! Function to load nth_day_of_the_week_in_month objects using serialization lib/*! nth_day_of_the_week_in_month  objects are broken down into 3 parts for  * serialization: the week number, the day of the week, and the month */template<class Archive>void load(Archive & ar, gregorian::nth_kday_of_month& nkd, unsigned int version){  typename gregorian::nth_kday_of_month::week_num wn(gregorian::nth_kday_of_month::first);  typename gregorian::nth_kday_of_month::day_of_week_type d(gregorian::Monday);  typename gregorian::nth_kday_of_month::month_type m(gregorian::Jan);  ar & make_nvp("nth_kday_of_month_week_num", wn);  ar & make_nvp("nth_kday_of_month_day_of_week", d);  ar & make_nvp("nth_kday_of_month_month", m);    nkd = gregorian::nth_kday_of_month(wn,d,m);}//!override needed b/c no default constructortemplate<class Archive>inline void load_construct_data(Archive & ar,                                 gregorian::nth_kday_of_month* nkd,                                 const unsigned int file_version){  // values used are not significant  ::new(pd) gregorian::nth_kday_of_month(gregorian::nth_kday_of_month::first,                                         gregorian::Monday,gregorian::Jan);}/**** first_kday_of_month ****///! Function to save first_day_of_the_week_in_month objects using serialization lib/*! first_day_of_the_week_in_month objects are broken down into 2 parts for  * serialization: the day of the week, and the month */template<class Archive>void save(Archive & ar, const gregorian::first_kday_of_month& fkd,           unsigned int version){  typename gregorian::first_kday_of_month::day_of_week_type d(fkd.day_of_week().as_number());  typename gregorian::first_kday_of_month::month_type m(fkd.month().as_number());  ar & make_nvp("first_kday_of_month_day_of_week", d);  ar & make_nvp("first_kday_of_month_month", m);}//! Function to load first_day_of_the_week_in_month objects using serialization lib/*! first_day_of_the_week_in_month objects are broken down into 2 parts for  * serialization: the day of the week, and the month */template<class Archive>void load(Archive & ar, gregorian::first_kday_of_month& fkd, unsigned int version){  typename gregorian::first_kday_of_month::day_of_week_type d(gregorian::Monday);  typename gregorian::first_kday_of_month::month_type m(gregorian::Jan);  ar & make_nvp("first_kday_of_month_day_of_week", d);  ar & make_nvp("first_kday_of_month_month", m);    fkd = gregorian::first_kday_of_month(d,m);}//!override needed b/c no default constructortemplate<class Archive>inline void load_construct_data(Archive & ar,                                 gregorian::first_kday_of_month* fkd,                                 const unsigned int file_version){  // values used are not significant  ::new(pd) gregorian::first_kday_of_month(gregorian::Monday,gregorian::Jan);}/**** last_kday_of_month ****///! Function to save last_day_of_the_week_in_month objects using serialization lib/*! last_day_of_the_week_in_month objects are broken down into 2 parts for  * serialization: the day of the week, and the month */template<class Archive>void save(Archive & ar, const gregorian::last_kday_of_month& lkd,           unsigned int version){  typename gregorian::last_kday_of_month::day_of_week_type d(lkd.day_of_week().as_number());  typename gregorian::last_kday_of_month::month_type m(lkd.month().as_number());  ar & make_nvp("last_kday_of_month_day_of_week", d);  ar & make_nvp("last_kday_of_month_month", m);}//! Function to load last_day_of_the_week_in_month objects using serialization lib/*! last_day_of_the_week_in_month objects are broken down into 2 parts for  * serialization: the day of the week, and the month */template<class Archive>void load(Archive & ar, gregorian::last_kday_of_month& lkd, unsigned int version){  typename gregorian::last_kday_of_month::day_of_week_type d(gregorian::Monday);  typename gregorian::last_kday_of_month::month_type m(gregorian::Jan);  ar & make_nvp("last_kday_of_month_day_of_week", d);  ar & make_nvp("last_kday_of_month_month", m);    lkd = gregorian::last_kday_of_month(d,m);}//!override needed b/c no default constructortemplate<class Archive>inline void load_construct_data(Archive & ar,                                 gregorian::last_kday_of_month* lkd,                                 const unsigned int file_version){  // values used are not significant  ::new(pd) gregorian::last_kday_of_month(gregorian::Monday,gregorian::Jan);}/**** first_kday_before ****///! Function to save first_day_of_the_week_before objects using serialization libtemplate<class Archive>void save(Archive & ar, const gregorian::first_kday_before& fkdb,           unsigned int version){  typename gregorian::first_kday_before::day_of_week_type d(fkdb.day_of_week().as_number());  ar & make_nvp("first_kday_before_day_of_week", d);}//! Function to load first_day_of_the_week_before objects using serialization libtemplate<class Archive>void load(Archive & ar, gregorian::first_kday_before& fkdb, unsigned int version){  typename gregorian::first_kday_before::day_of_week_type d(gregorian::Monday);  ar & make_nvp("first_kday_before_day_of_week", d);    fkdb = gregorian::first_kday_before(d);}//!override needed b/c no default constructortemplate<class Archive>inline void load_construct_data(Archive & ar,                                 gregorian::first_kday_before* fkdb,                                 const unsigned int file_version){  // values used are not significant  ::new(pd) gregorian::first_kday_before(gregorian::Monday);}/**** first_kday_after ****///! Function to save first_day_of_the_week_after objects using serialization libtemplate<class Archive>void save(Archive & ar, const gregorian::first_kday_after& fkda,           unsigned int version){  typename gregorian::first_kday_after::day_of_week_type d(fkda.day_of_week().as_number());  ar & make_nvp("first_kday_after_day_of_week", d);}//! Function to load first_day_of_the_week_after objects using serialization libtemplate<class Archive>void load(Archive & ar, gregorian::first_kday_after& fkda, unsigned int version){  typename gregorian::first_kday_after::day_of_week_type d(gregorian::Monday);  ar & make_nvp("first_kday_after_day_of_week", d);    fkda = gregorian::first_kday_after(d);}//!override needed b/c no default constructortemplate<class Archive>inline void load_construct_data(Archive & ar,                                 gregorian::first_kday_after* fkda,                                 const unsigned int file_version){  // values used are not significant  ::new(pd) gregorian::first_kday_after(gregorian::Monday);}} // namespace serialization} // namespace boost#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?