[Boost-bugs] [Boost C++ Libraries] #2776: Failed to wrap classes with virtual inheritance

Subject: [Boost-bugs] [Boost C++ Libraries] #2776: Failed to wrap classes with virtual inheritance
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2009-02-18 12:02:11


#2776: Failed to wrap classes with virtual inheritance
-------------------------------------------------------+--------------------
 Reporter: Alexander Kogan <alexander_at_[hidden]> | Owner: dave
     Type: Bugs | Status: new
Milestone: Boost 1.39.0 | Component: Python
  Version: | Severity: Problem
 Keywords: |
-------------------------------------------------------+--------------------
 Hi!

 I've just generated a wrapper for the simple classes with virtual function
 and virtual inheritance with Py++ and generated code is failed to compile.
 Without virtual inheritance everything is ok.

 Error log is below, source and generated files are in attachment.

 % c++ -I/usr/include/python2.5 -lboost_python -shared -o test.so test.cxx
 /usr/include/boost/python/class.hpp: In static member function `static
 void boost::python::detail::error::virtual_function_default<T,
 Fn>::must_be_derived_class_member(const Default&) [with Default = void
 (Petq_wrapper::*)(), T = Petq_wrapper, Fn = void (Vasq::*)()]':
 /usr/include/boost/python/class.hpp:565: instantiated from `void
 boost::python::class_<T, X1, X2, X3>::def_default(const char*, Fn, const
 Helper&, mpl_::bool_<true>) [with Fn = void (Vasq::*)(), Helper =
 boost::python::detail::def_helper<void (Petq_wrapper::*)(),
 boost::python::detail::not_specified,
 boost::python::detail::not_specified,
 boost::python::detail::not_specified>, W = Petq_wrapper, X1 =
 boost::python::bases<Vasq, mpl_::void_, mpl_::void_, mpl_::void_,
 mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_,
 mpl_::void_>, X2 = boost::noncopyable_::noncopyable, X3 =
 boost::python::detail::not_specified]'
 /usr/include/boost/python/class.hpp:548: instantiated from `void
 boost::python::class_<T, X1, X2, X3>::def_impl(T*, const char*, Fn, const
 Helper&, ...) [with T = Petq, Fn = void (Vasq::*)(), Helper =
 boost::python::detail::def_helper<void (Petq_wrapper::*)(),
 boost::python::detail::not_specified,
 boost::python::detail::not_specified,
 boost::python::detail::not_specified>, W = Petq_wrapper, X1 =
 boost::python::bases<Vasq, mpl_::void_, mpl_::void_, mpl_::void_,
 mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_,
 mpl_::void_>, X2 = boost::noncopyable_::noncopyable, X3 =
 boost::python::detail::not_specified]'
 /usr/include/boost/python/class.hpp:608: instantiated from `void
 boost::python::class_<T, X1, X2, X3>::def_maybe_overloads(const char*, Fn,
 const A1&, ...) [with Fn = void (Vasq::*)(), A1 = void
 (Petq_wrapper::*)(), W = Petq_wrapper, X1 = boost::python::bases<Vasq,
 mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_,
 mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_>, X2 =
 boost::noncopyable_::noncopyable, X3 =
 boost::python::detail::not_specified]'
 /usr/include/boost/python/class.hpp:244: instantiated from
 `boost::python::class_<T, X1, X2, X3>& boost::python::class_<T, X1, X2,
 X3>::def(const char*, A1, const A2&) [with A1 = void (Vasq::*)(), A2 =
 void (Petq_wrapper::*)(), W = Petq_wrapper, X1 =
 boost::python::bases<Vasq, mpl_::void_, mpl_::void_, mpl_::void_,
 mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_,
 mpl_::void_>, X2 = boost::noncopyable_::noncopyable, X3 =
 boost::python::detail::not_specified]'
 test.cxx:52: instantiated from here
 /usr/include/boost/python/class.hpp:146: error: pointer to member
 conversion via virtual base `Vasq'

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/2776>
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:49:59 UTC