#include "obj.hpp"
#include <assert.h>
#include <fstream>
#include <boost/archive/text_iarchive.hpp>
#include <boost/archive/text_oarchive.hpp>
int main(void)
{
	char *filename = "save.txt";
	const obj o1(-2, false);
	const obj o2;
	const obj o3(21, true);
	const obj *const p1 = &o1;
	//save the obj data
	{
        //打开save.txt
         std::ofstream ofs(filename);
		boost::archive::text_oarchive ar(ofs);
        //将o1 o2 o3 p1 的数据记录到
		ar & o1 & o2 & o3 & p1;
	}
	obj restored_o1;
	obj restored_o2;
	obj restored_o3;
	obj *restored_p1;
	{
		std::ifstream ifs(filename);
		boost::archive::text_iarchive iar(ifs);
		iar & restored_o1 & restored_o2 & restored_o3 &
		    restored_p1;
	}
	assert(restored_o1 == o1);
	assert(restored_o2 == o2);
	assert(restored_o3 == o3);
	assert(restored_p1 != p1);
	assert(restored_p1 == &restored_o1);
	return 0;
}
#pragma once
namespace boost {
	namespace serialization {
		class access;
	}
}
class obj {
private:
	int d1_;
	bool d2_;
public:
	obj():d1_(-1),d2_(false){}
	obj(int d1,int d2):d1_(d1),d2_(d2){}
	bool operator==(const obj &o) const {
		return d1_ == o.d1_ && d2_ == o.d2_;
	}
private:	
	friend class boost::serialization::access;	
	template<typename Archieve> 
		void serialize(Archieve &ar,const unsigned version) {
			ar & d1_ & d2_;
		}
};
我的主要看的是这个例子http://www.codeproject.com/Articles/225988/A-practical-guide-to-Cplusplus-serialization 
可能是我对C++不熟,在编译过程中却是老是通不过。
我想了半天,死活想不出,结果看到一篇blog,看见其添加了一个导入了一个库文件我也尝试了一下 g++ -o main main.o -lboost_serialization 结果居然通过了,  
    看了一下save.txt 文件居然 将obj中的变量数值记录了下来。这个就是序列化?