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