This is caused by a bug in the boost serialisation, well at least in 1.39
Where is assumes that shared ptr must be polymorphic
I have already reported a similar problem.
i.e
>>... boost_1_39_0/boost/
>>serialization/extended_type_info_typeid.hpp", line
>>
88:
>>
warning #2414-D: delete of pointer to incomplete class
>>
BOOST_STATIC_WARNING(boost::is_polymorphic<T>::value);
>>
^detected during:
>>
instantiation of "const boost::serialization::extended_type_info
>>
*boost::serialization::extended_type_info_typeid<T>::get_derived_extended_type_info(const
>>
T &) const [with T=Concrete]" at line 92 of
>>
"/scratch/ma/emos/ma0/hpia64/boost/boost_1_39_0/boost/archive/shared_ptr_helper.hpp"
>>
>>
>>
It looks like if we are serialising via a base ptr, and the
>>
base class is serialising concrete data member via a shared ptr,
>>
it has assumed that the type must be polymorphic. This does
>>
not seem right to me ?
The hacky way to stop your warning message would be add a dummy virtual function.
Best regards,
Ta,
Avi