Thank you for your quick answer. I think I will use a map of vector instead of a multimap.


On Wed, Apr 9, 2014 at 12:18 PM, Robert Ramey <robertmacleranramey@gmail.com> wrote:


On Wednesday, April 9, 2014 7:45:59 AM UTC-7, Pablo Madoery wrote:
I have the following code:
 
snip ...

where you can see that the element's order is changed.

When compiling it throw this warning:
boost::mpl::print<boost::serialization::BOOST_SERIALIZATION_STATIC_WARNING_LINE<98> > 

that I don't know what it means.

You'll have to look into source code error stack to see the comment associated with this warning.
 

Is this a normal behavior of the serialization library?
I am missing something ?

This is a feature of the implementation of the serialization of multi map as well as the implementation
of the std::multi map itself.  The result is correct in that it's a valid multimap but it is a different one that the original. 
You could say it's an equivalent multimap.  Should this have been done differently? probably not.  Trying
to guarantee this level of "equality" would couple the serialization implementation to the
std::multimap implementation.  This would add much work and never could be entirely relied upon.

If you want a specific order - don't use multi map.  Expend your key size and use map or set

Robert Ramey