Boost logo

Boost Users :

Subject: [Boost-users] [Boost][Serialization] ASSERT triggered during reading 1.40 binary archive w/ Boost 1.47
From: Marc Perso (marc.viala_at_[hidden])
Date: 2011-07-27 13:59:58

Hello Booster,

We are trying to jump from Boost 1.40 to Boost 1.47 but we are facing an
issue: an ASSERT is raised in debug mode when reading back binary archive
generated by Boost.Serialization 1.40 with the Boost.Serialization 1.47.
This ASSERT is at line 116 in basic_archive.hpp:

BOOST_ASSERT(t_ <= boost::integer_traits<base_type>::const_max)

And it occurs with the following platform: MSVC 8.0 and Windows XP/32bits or

Looking at the load_override and save_override implementations for
class_id_type in #1.40, they seem loading and saving an 'int_least16_t'
(equiv. to a short for our platform) while load_override(class_id_type) for
#1.47 attempts to read an 'int' (file: basic_binary_iarchive.hpp @ line 98).

My questions are:
- This assert suggests that we can't read back previous binary archives
(#1.40 at least) with Boost.Serialization 1.47, is this a known pending
issue for Boost.Serialization?

- If yes, how we can manage that and how we can complete the migration to
1.47 in our case (it should be noted that we must be able to read back our
1.40 binary archives)? Is there any known patch for this problem?

Any assistance will be greatly appreciated.

Best regards,

Marc Viala

PS: I'm not sure but ticket #5567 seems already opened on this issue but has
not been yet fixed (

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at