Ticket #4370: test.cpp

File test.cpp, 1.6 KB (added by anonymous, 12 years ago)
Line 
1#include <fstream>
2#include <vector>
3#include <map>
4#include <boost/serialization/access.hpp>
5#include <boost/serialization/map.hpp>
6#include <boost/serialization/vector.hpp>
7#include <boost/archive/xml_iarchive.hpp>
8#include <boost/archive/xml_oarchive.hpp>
9#include <boost/serialization/nvp.hpp>
10
11class A
12{
13public:
14 A(int _a):a(_a){}
15private:
16 int a;
17 A():a(0){}
18 friend class boost::serialization::access;
19 //uncomment next line to make work as a hack
20 //friend class std::pair<const int,A>;
21 template<class Archive>
22 void serialize(Archive& ar, const unsigned int version)
23 {
24 ar & BOOST_SERIALIZATION_NVP(a);
25 }
26};
27
28int main(int argc, char** argv)
29{
30 const A a1(5);
31 {
32 std::ofstream ofile;
33 ofile.open("test.xml");
34 boost::archive::xml_oarchive oa(ofile);
35 oa<<BOOST_SERIALIZATION_NVP(a1);
36 }
37
38 std::vector<A> avector;
39 std::vector<A>::value_type v1(A(10));
40 avector.push_back(v1);
41 {
42 std::ofstream ofile;
43 ofile.open("testvector.xml");
44 boost::archive::xml_oarchive oa(ofile);
45 oa<<BOOST_SERIALIZATION_NVP(avector);
46 }
47 {
48 std::ifstream ifile("testvector.xml");
49 boost::archive::xml_iarchive ia(ifile);
50 ia>>BOOST_SERIALIZATION_NVP(avector);
51 }
52
53 std::map<int,A> amap;
54 std::map<int,A>::value_type m1(1,A(10));
55 amap.insert(m1);
56 {
57 std::ofstream ofile;
58 ofile.open("testmap.xml");
59 boost::archive::xml_oarchive oa(ofile);
60 oa<<BOOST_SERIALIZATION_NVP(amap);
61 }
62 {
63 std::ifstream ifile("testmap.xml");
64 boost::archive::xml_iarchive ia(ifile);
65 ia>>BOOST_SERIALIZATION_NVP(amap);
66 }
67
68 return 0;
69}