Boost logo

Boost-Build :

Subject: [Boost-build] Pure virtual method called
From: Ven Tadipatri (ven.tadipatri_at_[hidden])
Date: 2011-01-13 10:40:33


I've been having some issues upgrading our code from using boost 1.38 to
boost 1.45 (we haven't upgraded in a while).
It looks like most of the problems were due to virtual inheritance,
where code like this had to be added to various header files:

namespace boost{
template<>
struct is_virtual_base_of<base, derived>: public mpl::true_ {};
}

Otherwise it would complain about "no unique final overrider". This code
wasn't needed when building with boost 1.38.

Now, the code compiles but unfortunately at runtime, there is an error
about "pure virtual function called"
When I debug the program, the error is in the boost serialization void
cast detail.
The error message is incredibly unhelpful, since it doesn't tell me what
class the pure virtual function is in.
Nor is the stack trace helpful, because the entire stack trace appears
to be in Boost.
Any idea what's going on? I heard that this error might occur if
destructors for derived classes are called, then a method is invoked on
the instance
before its parent destructor is called.

Thanks,
Ven


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk