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 + -
显示快捷键?