
The problem is that Base needs the default constructor Daniel Frey wrote:
On 11.03.2009, at 19:18, Robert Ramey wrote:
My current version - checked into the trunk at boost/serialization/is_virtual_base_of.hpp is attached. I think it addresses the points mentioned here.
I can fix the case that causes me problems by adding a default constructor which is never called. That doesn't help for the generic case though. I'm guessing that type traits has lots of situations where members are declared and never called.
You probably misunderstood the idea, as it is really generic. The idea is to add a declaration (without a definition) of X's ctor (or any other generated methods that cause you trouble). To be more precise:
Index: boost/serialization/is_virtual_base_of.hpp =================================================================== --- boost/serialization/is_virtual_base_of.hpp (revision 51709) +++ boost/serialization/is_virtual_base_of.hpp (working copy) @@ -29,7 +29,7 @@ template<typename Base, typename Derived> struct is_virtual_base_of_impl { - struct X : Derived, virtual Base {}; + struct X : Derived, virtual Base { X(); }; BOOST_STATIC_CONSTANT(bool, value = sizeof(X)==sizeof(Derived)); };
HTH, Daniel
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost