Boost logo

Boost Users :

Subject: Re: [Boost-users] [Serialization] Registering containers ofuser-provided types
From: Robert Ramey (ramey_at_[hidden])
Date: 2011-02-10 00:41:56


Vivek wrote:
> I am writing a library that will handle storing and serializing
> user-defined types. The user-defined types are required to be
> themselves serializable.
>
> However the library uses templates to create containers of user
> types.

So far so good - look at the serialization implementions for std::vector<T>
and others.

>These containers are then serialized through a base class
> pointer. I don't know how to export the container types to
> boost::serialization through the templates. The only way I can do it
> is to force the user of the library to BOOST_CLASS_EXPORT_GUID()
> every container type.

That would be the way to do it. However, someone proposed a solution
to this problem and uploaded it as a track item. I found it intriguing,
But I decided not to implement it to keep the library from getting
any more complicated than it already is. You might want to
paste this proposed enhancement into your own code.

>
> I've tried unpacking the macro by looking at
> boost/serialization/export.hpp, but it is slightly complex.

lol - this is an understatement

> Is
> there a way to export a class as part of the template instantiation?
> Or another way to write the library to easily serialize containers of
> user-defined types?

The rub here is your requirement that it be exported through
a base class pointer. Were it not for this, it is easily done
just like standard containers are.

Robert Ramey



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