Serialisation of pointers is ok linux, hpux, but has the following exception:
archive_exception::unregistered_class on IBM AIX v10.1 using boost 1.39
Trivial case can be made to work. However as the number of files
grows, pointer serialisation start/stops working.
There seems to undefined behaviour.
There is a _known_ problem with serialisation via base pointer,
however this problem is exhibited with normal pointer serialisation.
It is extremely difficult to create small enough test case
which shows the problem. Sometimes a test case will work
and at other times a seemly innocuous change (like adding/removing more hierarchy)
will show the problem again.
There does not appear to be any rhyme or reason why, Could it be a compiler issue ?
template<class T>
struct polymorphic
{
static void save(
Archive &ar,
T & t
){
........
const boost::serialization::extended_type_info * true_type =
i.get_derived_extended_type_info(t);
// note:if this exception is thrown, be sure that derived pointer
// is either registered or exported.
if(NULL == true_type){
boost::serialization::throw_exception(
archive_exception(archive_exception::unregistered_class) <<<<<<<<<<<<<<<<<<<<<<<<
);
}
Has any one else come across this weird behaviour,
in fact I would like to here from anyone who has got pointer serialization
working consistently on AIX.
Any help greatly appreciated
Ta,
Avi