
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