On Fri, Apr 3, 2009 at 3:02 PM, Robert Ramey <ramey@rrsd.com> wrote:
 "Robert Dailey" <rcdailey@gmail.com> wrote in message news:496954360904031054x3cb9f3cfldf1985695a096614@mail.gmail.com...
Also, I'm a bit confused about something else Robert.

All along we've been saying that if the code in the translation unit is not used, it may be stripped by the linker. What code exactly is being stripped? I mean, I create my classes before I serialize them and I'm calling member functions on these instances. So for sure the translation unit is being "entered" before serialization even begins. Does this not meet the requirements?
 
 
I've been presuming your doing something like:
 
base * b = new derived;
ar << b;
 
 
....
base * new_b;
 
ar >> new_b; the linker look for the code to load derived.
 
Robert Ramey
What exactly are you trying to say here? Are you saying that only when I stream in does the translation unit for "derived" get visited? Could you provide a bit more detail?

What I'm doing is more like this:

base* b = new derived;
b->DoStuff();
b->DoMoreStuff();
archive << b;

I haven't actually used >> yet. This is strictly an issue with streaming out.