|
Boost Users : |
From: Sohail Somani (s.somani_at_[hidden])
Date: 2007-03-28 10:39:59
I'm using 1.33.1. If I use serialization/shared_ptr_132.hpp, same issue. Does the test fail for you?
-----Original Message-----
From: boost-users-bounces_at_[hidden] on behalf of Robert Ramey
Sent: Wed 3/28/2007 1:15 AM
To: boost-users_at_[hidden]
Subject: Re: [Boost-users][serialization]Assertion`new_cid==cid'failed-fails on gcc,works on msvc
RE: [Boost-users] [serialization] Assertion`new_cid==cid'failed-fails on gcc, works on msvcHmm - I'm not sure which version of boost you're using.
For boost version 1.32 one needs to use
BOOST_SHARED_POINTER_EXPORT(T)
This requirement was eliminated in 1.33 onward but I'm not sure which version you're using
Robert Ramey
"Sohail Somani" <s.somani_at_[hidden]> wrote in message news:1C1EBEF8DBACDC439D038EA051674EC73EE10C_at_xbox.financialcad.com...
Nope, same thing. Is there a way to enable some debug traces of the serialization? Inspection by debugging isn't helping much. What does the serialization library do differently for abstract classes? The part that is still confusing me is that I only have these issues when serializing shared_ptr. Raw pointers work just fine.
-----Original Message-----
From: boost-users-bounces_at_[hidden] on behalf of Robert Ramey
Sent: Tue 3/27/2007 10:28 PM
To: boost-users_at_[hidden]
Subject: Re: [Boost-users] [serialization] Assertion`new_cid==cid'failed-fails on gcc, works on msvc
OK
Try the following:
//BOOST_CLASS_EXPORT(base);
BOOST_CLASS_EXPORT(derived);
#include <boost/serialization/shared_ptr.hpp>
//BOOST_SERIALIZATION_SHARED_PTR(base);
BOOST_SERIALIZATION_SHARED_PTR(derived);
The base class shouldn't need exporting as it never
directly instantiated.
Robert Ramey
Sohail Somani wrote:
>> -----Original Message-----
>> From: boost-users-bounces_at_[hidden]
>> [mailto:boost-users-bounces_at_[hidden]] On Behalf Of Robert
>> Ramey Sent: Tuesday, March 27, 2007 2:39 PM
>> To: boost-users_at_[hidden]
>> Subject: Re: [Boost-users] [serialization] Assertion `new_cid
>> ==cid'failed-fails on gcc, works on msvc
>>
>> Note that serialize a poly morphic shared pointer requires a little
>> bit of gymnastics. Check out the "test_shared_ptr" and the
>> source of serialization/shared_ptr.hpp
>
> I think I've followed the documentation, but the attached test still
> triggers an assertion when deserializing on gcc 3.2.2:
>
> $ ./build/stage/bin/test_serialize
> Serialized form: 22 serialization::archive 3 0 1 2 7 derived 1 0
> 0 1 0
> 1 10 derived id
> test_serialize: basic_iarchive.cpp:466: const
> boost::archive::detail::basic_pointer_iserializer*
> boost::archive::detail::basic_iarchive_impl::load_pointer(boost::archive
>>> detail::basic_iarchive&, void*&, const
> boost::archive::detail::basic_pointer_iserializer*, const
> boost::archive::detail::basic_pointer_iserializer*(*)(const
> boost::serialization::extended_type_info&)): Assertion `new_cid ==
> cid' failed.
> Aborted
>
> This assertion does not trigger occur on Visual C++ 7.1. Can you spot
> if I'm doing something obviously silly?
------------------------------------------------------------------------------
_______________________________________________
Boost-users mailing list
Boost-users_at_[hidden]
http://lists.boost.org/mailman/listinfo.cgi/boost-users
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