Hello,
I think I have found something, but I would like you to confirm, in the get_helper (boost/serialization/shared_ptr.hpp), if the variable sph (See code: shared_ptr<void> sph;) represent the most derived class, and if we have mulitple inheritance, then we cannot cast (See code: return * static_cast<H *>(sph.get());) a void * to a base class. It has to be cast to the derived class first and then to the base class. What do you think?
template<class Archive, class H>
H &
get_helper(Archive & ar){
extended_type_info * eti = type_info_implementation<H>::type::get_instance();
shared_ptr<void> sph;
ar.lookup_helper(eti, sph);
if(NULL == sph.get()){
sph = shared_ptr<H>(new H);
ar.insert_helper(eti, sph);
}
return * static_cast<H *>(sph.get());
}
Thanks again,
Michel :)