Ticket #4660: ser_test_2.cpp

File ser_test_2.cpp, 1.1 KB (added by joerg schlegel <jschlegel@…>, 12 years ago)

create / read test archive including std::map<std::string, size_t>, corrections: open file in binary mode, adapted to legacy c++ standard

Line 
1#include <fstream>
2#include <ios>
3#include <iostream>
4#include <boost/archive/binary_iarchive.hpp>
5#include <boost/archive/binary_oarchive.hpp>
6#include <boost/serialization/map.hpp>
7#include "boost/version.hpp"
8
9int main(int argc, char *argv[])
10{
11 if ( argc > 1 && !strcmp(argv[1], "write") )
12 {
13 std::map<std::string, size_t> m;
14 m["aaa"] = 111;
15 m["bbb"] = 222;
16
17 std::string filename("archive-");
18 filename+=BOOST_LIB_VERSION;
19 filename+=".ser";
20 std::ofstream fb(filename.c_str(), std::ios_base::out | std::ios_base::binary);
21 boost::archive::binary_oarchive oa(fb);
22 oa << m;
23 }
24 else if ( argc > 2 && !strcmp(argv[1], "read") )
25 {
26 std::map<std::string, size_t> m;
27
28 std::string filename(argv[2]);
29 std::ifstream fb(filename.c_str(), std::ios_base::in | std::ios_base::binary);
30 boost::archive::binary_iarchive ia(fb);
31 ia >> m;
32
33 for (std::map<std::string, size_t>::const_iterator iter=m.begin(); iter!=m.end(); ++iter)
34 {
35 std::cout << "m[" << iter->first << "] = " << iter->second << std::endl;
36 }
37 }
38 else
39 {
40 printf("parameter error.\n");
41 }
42
43}