
Hi Kangkook,
By removing the pointer in const string*, the code compiles. You have to
investigate how Boost.Serialization handles pointers to stdlib classes:
http://www.boost.org/doc/libs/1_47_0/libs/serialization/doc/index.html
I never tried to serialize a string* nor any pointer to a stdlib class
before. Although i know it's possible to use pointers for base classes
polymorphically. Serializing a string* shouldn't be a problem, i guess.
Regards,
Júlio.
2011/9/20 Kangkook Jee
The following is the code snippet that wouldn't get compiled.
#include <iostream> #include <fstream> #include <map> #include <string>
#include
#include #include
#include #include using namespace std;
class B { //private attributes map
lines; //serialization friend class boost::serialization::access;
template<class Archive> void serialize (Archive & ar, const unsigned int version) { ar & lines; }
public: B() {} };
main (int argc, char* argv[]) {
string fname(argv[1]);
B b0;
std::ofstream ofs (fname.c_str()); boost::archive::text_oarchive oa(ofs); oa << b0; ofs.close();
std::ifstream ifs(fname.c_str()); boost::archive::text_iarchive ia(ifs); ia >> b0; ifs.close();
return 0; }