Boost logo

Boost Users :

From: Sergey Skorniakov (s.skorniakov_at_[hidden])
Date: 2005-07-04 04:48:54

Hello, Robert!
You wrote on Fri, 1 Jul 2005 10:04:35 -0700:

 RR> Any violation of assert is indication of a programming error (at least
 RR> in the way I intend to use it).

Yes, I am understand this. But I can not understand what kind of error this
assert indicates.

 RR> So send me some more information including boost version, compiler
 RR> version, etc.
compiler - MS VC 7.1, boost 1.32. XML archive was used.

 RR> If you can send a small test case that is also immensily helpful.

Unfortunately, I can't isolate problem. I had never see this error on my
computer but only got reports from my colleagues, who are working at another

 ??>> sometimes I got errors in basic_iarchive_impl::load_pointer in line
 ??>> assert(new_cid == cid).
 ??>> Can anyone tell me what exactly this assertion means and whan it can
 ??>> occurs? Is this error posiible if I remove some BOOST_CLASS_EXPORTs
 ??>> from my code and try to load old files?

 RR> Trying to load an archive with one set of traits from a archive saved
 RR> with another set of traits would generally not work without making
 RR> special arrangements to read the "old" archives. That is, saving one
 RR> way and loading another way cannot be generally expected to work and
 RR> should give an exception.

Ok, we are using class versioning to support loading of older versions of
classes. Can we remove obsolete classes (serialized by pointer to base) from
time to time or this will break reading archives even if no instances of
such classes was used during writing? I see some class names and numeric ids
for classes in archives but I'm not sure that these names or ids used for
polymorphic loading. Of course, if ids used, we should not remove any class
that marked with BOOST_CLASS_EXPORT macro, but if class names used, I see no
reasons why we can't drop obsolete classes.

With best regards, Sergey.

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