
Kolb, Jeremy wrote:
Thanks for the help but I don't quite follow:
A) Isn't the point of using the polymorphic types is to avoid instantiating all the types explicitly (at the cost of performance/virtual function calls)?
assuming we're talking about polymorphic_?archive here. Now I think about it, I think I gave wrong advice. The correct thing would be to instantiate polymorphic_iarchive and polymorphic_oarchive when creating the DLL. which is what I think you did. BUT you should also make sure these archive types are used by making the following changes:
int _tmain(int argc, _TCHAR* argv[]) { std::ofstream f("c:\\test.xml"); // note creation of derived type of archive asigned to the base type of archive !! boost::archive::polymorphic_oarchive & xml = boost::archive::polymorphic_xml_oarchive(f);
Base* b = new Derived(123); // now serialization should proceed through polimorphic_oarchive interface xml & BOOST_SERIALIZATION_NVP(b);
delete b;
return 0; }
Robert Ramey