Boost logo

Boost :

From: Robert Ramey (ramey_at_[hidden])
Date: 2006-01-30 11:44:40


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


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk