Júlio Hoffimann wrote:
> Dear all,
>
>
> I'm using Boost 1.45...
>
>
> I've read Boost.Serialization docs so many times and can't understand
> why my testcase is not working as expected. According to the
> following three links, we need to address serialization of derived
> classes with "abstract" base class by using boost macros:  
>
>
> http://www.boost.org/doc/libs/1_47_0/libs/serialization/doc/traits.html#export
>
>
> http://www.boost.org/doc/libs/1_47_0/libs/serialization/doc/special.html#export
>
>
> http://www.boost.org/doc/libs/1_47_0/libs/serialization/doc/traits.html#abstract
>
>
> I did my testcase ( http://codepad.org/6ETp1Ac0 ) completely based on
> the demo:
> http://www.boost.org/doc/libs/1_47_0/libs/serialization/example/demo.cpp
 
Have you tried to build adn run the demo as it is?  Does it work?
 
Robert Ramey

>
>
> Compiling and running shows that the derived class archive contains
> just the base class data members. What is happening? How can i solve
> this problem? 
 
One obvious problem is that the base class is not abstract.  To be abstract,
a base class must have atleast one virtual function in the form
 
virtual my_function() = 0;
 
The ASSUME_ABSTRACT macro doesn't mark it abstract to the
compiler - it marks it abstract to the boost type-traites system. 
I know it's quirky and unclear - but I see no way to make it bullet proof.
 
I'm sort of surprised/disappointed that this doesn't give a compile time
warning.  What compiler do you use?
 
Robert Ramey
 

>
>
> I really appreciate any help,
> Júlio.
>