Boost logo

Boost :

From: Sohail Somani (sohail_at_[hidden])
Date: 2008-03-23 13:08:21


On Sun, 23 Mar 2008 09:37:42 -0800, Robert Ramey wrote:

>>> From a quick inspection, it appears that the cast between base and
>>> derived never gets registered.
>>
>> I'm actually unsure as to how the void cast can get registered *before*
>> BOOST_SERIALIZATION_BASE_OBJECT_NVP(Base) gets executed and therefore,
>> I'm not sure how these tests are passing anywhere else.
>
> LOL - this is a key trick used by the library - very convenient and a
> common source of consternation. refers to a static object. With some
> care, such objects can be created at "pre-main" time so that they are
> available BEFORE they are referred to in the code. That is the
> mechanism which makes the tests pass everywhere else. This mechanism is
> compiler dependent though so sometimes (like here) we have some
> problems.
>
> Note that this is a key implementation technique which makes the
> serialization 'automatically" instantiate required code- and only the
> required code.

This was my understanding of the library but I could not determine what
code is *not* being instantiated/referenced. Could you point me towards
what code is expected to be instantiated? Then I can do some debugging.

No LOLing! This is serious business :-)

-- 
Sohail Somani
http://uint32t.blogspot.com

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk