Hi,
I'm having a problem serializing a multi-index container. Serialization
used to work fine, until I added a second (non-unique) key to the
container. I've managed to distill the problem down to a small bit of
code, so here it is. Uncomment the #define to see the segfault at
serialization time in action, leave it commented and the example code
works fine. I'm clearly missing something subtle (or not-so-subtle) here,
but I don't have the first clue what it might be. Suggestions are
enormously appreciated.
Regards,
tob
----------------------------------------------------------------------------
// A simple program to illustrate my crazy serialization problem with
// multi-index containers. Compiled with:
// g++ -I/usr/local/include/boost-1_33_1/ boost_test.c++ \
// -lboost_serialization -o boost_test
//
// When two keys are specified for FooSet, serialization segfaults. When
// only one key is present, we're fine. Uncomment the line below to see
// the segfault in action.
// #define KILL_SERIALIZATION
#include <fstream>
#include <string>
#include
FooSet;
void save(const FooSet& fooSet) { std::ofstream ofs("foo"); boost::archive::text_oarchive oa(ofs); oa << fooSet; } int main(int argc, char** argv) { FooSet foo_set; foo_set.insert(Foo(100)); foo_set.insert(Foo(150)); save(foo_set); return 0; }