[Boost-bugs] [Boost C++ Libraries] #3730: compilation problem with is_virtual_base_of when class contains abstract methods

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