`
magicsky
  • 浏览: 88633 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

boost::Serialization的最简单例子

阅读更多
/**
 * @file simple.cc
 * @brief
 *
 * @author garcia.wul (garcia.wul@alibaba-inc.com)
 * @date Jun 24, 2010 2:59:05 PM
 * @version 0.0.0
 *
 */

#include <boost/archive/text_iarchive.hpp>
#include <boost/archive/text_oarchive.hpp>
#include <cstdlib>
#include <fstream>
#include <iostream>
#include <string>

typedef boost::archive::text_iarchive iarchive;
typedef boost::archive::text_oarchive oarchive;

using namespace std;

class Data {
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive& ar, const unsigned int version) {
	ar& single_data;
	ar& single_str;
}

public:
	static void save(const Data& obj, string filename) {
		ofstream stream(filename.c_str());
		oarchive oa(stream);
		oa << obj;
	}

	static void load(Data& obj, string filename) {
		ifstream ifs(filename.c_str());
		iarchive ia(ifs);
		ia >> obj;
	}

public:
	int single_data;
	string single_str;
};

int main(int argc, char const** argv) {
	Data data;
	data.single_data = 1;
	data.single_str = "wuliang";
	Data::save(data, "1.db");
	Data data2;
	Data::load(data2, "1.db");
	cout << data2.single_data << endl;
	cout << data2.single_str << endl;

	return EXIT_SUCCESS;
}

 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics