Boost logo

Boost Users :

From: Max Schoebinger (m.schoebinger_at_[hidden])
Date: 2006-03-14 09:30:51


Hi everybody,

I am new to the serialization library and encountered a simple problem
which I couldn't solve. I'd like to serialize simple stl containers. A
minimal example is

#include <fstream>
#include <list>
#include <boost/serialization/list.hpp>
#include <boost/archive/text_oarchive.hpp>

int main(int argc, char** argv)
{
     typedef std::list<int> List;

     List myList;
     myList.push_back(1);
     myList.push_back(2);
     myList.push_back(3);
     myList.push_back(4);
     std::ofstream ofs("archive.txt");
     boost::archive::text_oarchive oa(ofs);
     oa << myList;
}

This doesn't compile under Linux using gcc-3.3 and boost-1.33.1 giving
the following compiler error:

/opt/toolkits/linux32/gcc-3.3/boost-1-33-1/include/boost-1_33_1/boost/archive/detail/oserializer.hpp:567:
error: incomplete type `boost::STATIC_ASSERTION_FAILURE<false>' does not
have member `value'

Looking at the code at the given position hints that the type which
should be serialized should be marked as track_never. I added the
following command below the typedef of List

BOOST_CLASS_TRACKING(List, boost::serialization::track_never)

which also doesn't solve the problem...

Maybe I am missing something very basic. I would be very thankful, if
somebody could lift the curtain in front of my eyes ;-)

Best Regards,

Max


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net