Boost logo

Boost Users :

From: Hubert Hoover (hugh_at_[hidden])
Date: 2006-06-16 04:03:07


On Jun 15, 2006, at 22:33, Robert Ramey wrote:

> Hugh Hoover wrote:
>
> Its not clear what you're doing here. Is the second test reading the
> archive
> created by the first test on a different machine or is it reading an
> archive created on the same machine?

A structure is serialized to an ostringstream, then the string used
to create an istringstream and read back immediately.

>> The code between darwin and windows is essentially the same - there
>> aren't any differences in MY code in the serialization code.
>
> Hmmm - "essentially" ? - why is the code not identical?

acquisition of UUID's from the system, as well as the library used
for MD5 digests - both of these are indirected through other classes,
but most of that (#ifdef) code is inline, so technically.... I don't
believe the differences have anything to do with the problem - by the
time serialization is done, all of that code has done it's job long
before, and no issues have shown up in testing on either platform.

> Is BOOST_CLASS_EXPORT used in the second test - that is
> where the class names come from.

BOOST_CLASS_EXPORT is used in all cases - along with some
registration functions that call register_type and
register_void_pointer for my serializable classes.

>> b) The specific class that's failing is from an STL map with pointers
>> to an abstract base class.
>
> The class thats failing is the STL map or is it a member of the map?

Not the map - it's clear it's failing on the second part of the pairs
stored in the map, i.e., the value part of the the key->value pair.

>>
>> Ok - any suggestions on how to tackle this? I can't find anything
>> wrong in the registration (i've walked through my part of the
>> registration code in the debugger).
>
> I would suggest posting a small example which we can run.

I was afraid of that - I didn't run into this until I got into the
full set of classes... I've been building this up from the basic
classes to the higher level ones (testing each class along the way).
Everything has been working fine up to this point.
The curious thing (to me anyway) is that I successfully, IN THE SAME
TEST PROGRAM, write and read back ALL of the concerned (contained or
referenced) classes prior to the test that fails, which adds one
further level to the structure. I can also write and read back an
>empty< instance of THAT structure with no problem.

Well - if I can't figure this out in the next day or two - I'll try
to build some test classes that show the problem.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net