Boost logo

Boost :

Subject: Re: [boost] [Serialization] this seems wrong
From: Kenny Riddile (kfriddile_at_[hidden])
Date: 2008-11-26 13:45:02


Robert Ramey wrote:
> Kenny Riddile wrote:
>> Am I missing something?
>
> This is done in order to create unique variable name for static
> variables which implement export.
>
>> Is this fixed in 1.37
>
> no.
>
> We don't know of any other way to do this. If you do, feel free
> to implement it.
>
> Robert Ramey
>
>
>
> _______________________________________________
> Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
>

This appears to work and makes more conceptual sense to me as well
(sorry if the formatting gets mangled, but you get the idea):

replace:

#define BOOST_CLASS_EXPORT_GUID(T, K)
             \
namespace
             \
{
             \
     ::boost::archive::detail::guid_initializer< T > const &
              \
         BOOST_PP_CAT(boost_serialization_guid_initializer_, __LINE__)
                     \
         = ::boost::serialization::singleton<
              \
             ::boost::archive::detail::guid_initializer< T >
              \
>::get_mutable_instance().export_guid(K);
              \
}

with:

#define BOOST_CLASS_EXPORT_GUID(T, K)
             \
namespace
             \
{
             \
     ::boost::archive::detail::guid_initializer< T > const &
              \
         BOOST_PP_CAT(boost_serialization_guid_initializer_, T)
              \
         = ::boost::serialization::singleton<
              \
             ::boost::archive::detail::guid_initializer< T >
              \
>::get_mutable_instance().export_guid(K);
              \
}


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