Subject: [Boost-bugs] [Boost C++ Libraries] #3730: compilation problem with is_virtual_base_of when class contains abstract methods
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2009-12-08 12:52:24
#3730: compilation problem with is_virtual_base_of when class contains abstract
methods
----------------------------------------------------+-----------------------
Reporter: Barry Searle <barry.searle@â¦> | Owner: johnmaddock
Type: Bugs | Status: new
Milestone: Boost 1.42.0 | Component: type_traits
Version: Boost 1.41.0 | Severity: Problem
Keywords: |
----------------------------------------------------+-----------------------
When a virtual base class contains an abstract method that is implemented
in the inheritance tree, rather than the final class, gcc won't compile
serialized classes. This happens with gcc 4.3.1 on openSuSE 11.0 and gcc
4.4.1 on 11.2.
I'm attaching a modified version of the test_diamond.cpp program from the
serialization library. The base class now contains an abstract method, the
final class in the example has been renamed to intermediate and a new
final class is derived directly from intermediate. The abstract method is
implemented in the intermediate class resulting in a compiler error[[BR]]
/usr/local/boost-r58233/include/boost/type_traits/is_virtual_base_of.hpp:56:
error: no unique final overrider for âvirtual void base::method1()â in
âboost::detail::is_virtual_base_of_impl<intermediate, final,
mpl_::bool_<true> >::Xâ[[BR]]
The method looks to be unique to me. If the method is implemented in final
rather than intermediate then the problem doesn't occur.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/3730> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:02 UTC