Boost logo

Boost :

From: Hartmut Kaiser (hartmut.kaiser_at_[hidden])
Date: 2006-03-20 12:26:05

Hi all,

I was trying to add class versioning to the serialization code for the Wave
library (for storing macro tables but couldn't succeed. I've added a
class version to the code by adding:

namespace boost { namespace serialization {

    typename Iterator, typename LexIterator,
    typename InputPolicy, typename Hooks
struct version<boost::wave::context<Iterator, LexIterator, InputPolicy,
Hooks> >
    typedef boost::wave::context<Iterator, LexIterator, InputPolicy, Hooks>
    typedef mpl::int_<target_type::version> type; // version == 0x100
    typedef mpl::integral_c_tag tag;
    BOOST_STATIC_CONSTANT(unsigned int, value = version::type::value);

}} // namespace boost::serialization

The save function of the context<> now get's called during serialization
with the correct version value. But during load the context<>::load function
still get's passed zero as the loaded version. Is this a known behaviour, am
I ding something wrong (perhaps essential: context is explicitely marked as

Regards Hartmut

Boost list run by bdawes at, gregod at, cpdaniel at, john at