$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
From: Robert Ramey (ramey_at_[hidden])
Date: 2008-01-02 01:32:19
Rather than put your program on my debugger, here is the way I anticipated 
that the library would be used:
> #include <iostream>
>
> #include <fstream>
>
> #include <boost/serialization/string.hpp>
> #include <boost/archive/text_oarchive.hpp>
> #include <boost/archive/text_iarchive.hpp>
>
>
> //----------------------------------------------------------------------------
> using namespace std;
>
> //----------------------------------------------------------------------------
> class A
> {
>    private:
>        friend class boost::serialization::access;
>        template<class Archive>
>            void serialize(Archive & ar, const unsigned int version)
>            {
>                ar & a;
>                ar & b;
>            }
>
>    public:
>        int a;
>        int b;
>
> };
>
> //----------------------------------------------------------------------------
> class B
> {
>    private:
>        friend class boost::serialization::access;
>        template<class Archive>
>            void serialize(Archive & ar, const unsigned int version)
>            {
>                ar & ms;
>                ar & a;
>            }
>    public:
>
>    public:
>        B( const string& s ) : ms( s ){}
>        void print(){ cout << ms << endl; }
>    private:
>        B(){} // use by serialization only
>        string ms;
>        A a;
> };
>
>
> //----------------------------------------------------------------------------
int main()
{
    // Save
   A* pa = new A;
   pa->a = 3;
   pa->b = 5;
   B* pb = new B( "this is test B" );
  {
        std::ofstream ofs( "all.out" );
        boost::archive::text_oarchive oa(ofs);
        oa << pa;
        ob << pb;
        delete pa;
        delete pb;
    }
   A* paa;
   B* pbb
    {
        std::ifstream ifs( "all.out", std::ios::binary );
        boost::archive::text_oarchive ia(ifs);
        ia >> paa;
        ia >> pbb;
    }
    cout << "A: " << paa->a << " " << paa->b << endl;
    pbb->print();
    delete paa;
    delete pbb;
     return 0;
}
Robert Ramey