greg_serialize.hpp
来自「support vector clustering for vc++」· HPP 代码 · 共 490 行 · 第 1/2 页
HPP
490 行
{
unsigned short us = gd.as_number();
ar & make_nvp("greg_weekday", us);
}
//! Function to load gregorian::greg_weekday objects using serialization lib
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 constructor
template<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 constructor
template<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 constructor
template<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(nkd) 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 constructor
template<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(fkd) 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 constructor
template<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(lkd) gregorian::last_kday_of_month(gregorian::Monday,gregorian::Jan);
}
/**** first_kday_before ****/
//! Function to save first_day_of_the_week_before objects using serialization lib
template<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 lib
template<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 constructor
template<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(fkdb) gregorian::first_kday_before(gregorian::Monday);
}
/**** first_kday_after ****/
//! Function to save first_day_of_the_week_after objects using serialization lib
template<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 lib
template<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 constructor
template<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(fkda) gregorian::first_kday_after(gregorian::Monday);
}
} // namespace serialization
} // namespace boost
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?