[ create a new paste ] login | about

Link: http://codepad.org/EYHfWxqN    [ raw code | output | fork ]

C++, pasted on Jun 22:
#include <iostream>
#include <fstream>
#include <boost/serialization/string.hpp>
#include <boost/serialization/nvp.hpp>
#include <boost/serialization/utility.hpp>
#include <boost/serialization/base_object.hpp>
#include <boost/serialization/type_info_implementation.hpp>
#include <boost/serialization/export.hpp>
#include <boost/archive/xml_oarchive.hpp>
#include <boost/foreach.hpp>

using namespace std;

class Father{   
	public :
    	string who;
	Father(){ who = "father";};
	virtual void whoAreYou(){ cout << "Hello, I am the " << this->who << endl; };
}; 

class Son : public Father{
	public :
	Son(){ who = "son" ;};
};

BOOST_CLASS_EXPORT_GUID(Son, "son");

template<class Archive>
void serialize(Archive & ar, Father & g, const unsigned int version)
{	
	ar & BOOST_SERIALIZATION_NVP(g.who);
}

template<class Archive>
void serialize(Archive & ar, Son & g, const unsigned int version)
{	
	ar & BOOST_SERIALIZATION_NVP(boost::serialization::base_object<Father>(g));
}



int main(){			
	std::ofstream ofs("wtf.xml");
	assert(ofs.good());	
	boost::archive::xml_oarchive oa(ofs);
	Father *mySon = new Son();	
	oa << BOOST_SERIALIZATION_NVP(mySon);
}


Output:
1
2
3
4
5
6
7
8
In file included from /usr/include/boost/archive/detail/basic_oarchive.hpp:25,
                 from /usr/include/boost/archive/detail/common_oarchive.hpp:19,
                 from /usr/include/boost/archive/basic_xml_oarchive.hpp:21,
                 from /usr/include/boost/archive/xml_oarchive.hpp:31,
                 from t.cpp:10:
Line 1: error: #error "export.hpp must not be included before any archive header"
Line 26: error: extra ';'
compilation terminated due to -Wfatal-errors.


Create a new paste based on this one


Comments: