boost::serialization 拆分serialize函数(二)

2014-11-24 12:30:38 · 作者: · 浏览: 1
er_; std::string grade_; }; 这个函数是intrusive的,我们也可以用一种non-intrusive:

class student_info
{
public:
	//...
private:
	template
   
    
	friend void serialize(Archive& ar, student_info &sdinfo, const unsigned int file_version);
private:
	std::string name_;
	std::string number_;
	std::string grade_;
};
   
再类外面实现 serialize 函数:

template
   
    
void serialize(Archive& ar, student_info &sdinfo, const unsigned int file_version)
{
	ar & BOOST_SERIALIZATION_NVP(sdinfo.name_);
	ar & BOOST_SERIALIZATION_NVP(sdinfo.number_);
	ar & BOOST_SERIALIZATION_NVP(sdinfo.grade_);
}
   
这样就ok了。