
Check out test_diamond in the test suite. It has been designed to test and demonstrate exactly this functionality and the test passes with VC 8.0 with all archives. So, compare this with your own example to determine what has to be fixed. This should result in one of the following: a) a usage error in the library. If this turns out to be the case I would be happy to recieve a suggestion for ehancing the documenation or code (BOOST_STATIC_ASSERT or something like that - or both. b) an error in the serialiation library - in shis case I would be happy to recieve a suggestion on how to enhance "test_diamond" to detect and illustrate this error. Robert Ramey Loïc Joly wrote:
Hello,
I have a class hierarchy that looks like this :
class A {/**/}; // Polymorphic class B1 : virtual public A {/**/}; class B2 : virtual public A {/**/}; class C : public B1, public B2 {/**/}; class D : public C {/**/};
In C, I define the serialize function like this :
template <class Archive> void C::serialize(Archive &ar, const unsigned int version) { BOOST_SERIALIZATION_BASE_OBJECT_NVP(B1); BOOST_SERIALIZATION_BASE_OBJECT_NVP(B2); // serialize fields specific to C }
When I try to serialize an object of type C, it works just fine. However, when I try to serialize an object of class D, it fails.
I would be interesting to know how it fails. Robert Ramey