on Sat Nov 15 2008, "Leonard Ritter" <paniq-AT-paniq.org> wrote:
> ================ yields ===================
>
> /usr/include/boost/python/object/pointer_holder.hpp: In constructor
> 'boost::python::objects::pointer_holder<Pointer,
> Value>::pointer_holder(PyObject*)
> [with Pointer = boost::shared_ptr<halebopp::Actor>, Value = halebopp::Actor]':
> /usr/include/boost/python/object/make_holder.hpp:83: instantiated from
> 'static
> void boost::python::objects::make_holder<0>::apply<Holder, ArgList>::execute
Yoiks! You clearly need gSTLFilt. Please post such things as
attachments or in some other way that doesn't insert linebreaks.
After reconstructing your lines and 'filt-ing, I get:
/usr/include/boost/python/object/pointer_holder.hpp:179: error: cannot allocate
an object of abstract type 'halebopp::Actor' src/nucleus/ogl.hpp:38: note:
because the following virtual functions are pure within 'halebopp::Actor':
src/nucleus/ogl.hpp:74:
virtual void halebopp::Actor::queue_redraw()
/usr/include/boost/python/object/pointer_holder.hpp: In constructor 'boost
::python::objects::pointer_holder<
boost::shared_ptr<halebopp::Actor>, halebopp::Actor
>::pointer_holder(PyObject *)':
/usr/include/boost/python/class.hpp:629: instantiated from 'boost::python
::class_ <T, X1, X2, X3>::class_(const char*, const char*) [with W =
halebopp::python::PyActor, X1 = boost::shared_ptr<halebopp::Actor>, X2 =
boost::noncopyable_::noncopyable, X3 = boost::python::detail::not_specified]'
src/nucleus/export_ogl.cpp:94:
instantiated from here
/usr/include/boost/python/object/make_holder.hpp:83: instantiated from
'static void boost::python::objects::make_holder<
0
>::apply<
boost::python::objects::pointer_holder<
boost::shared_ptr <halebopp::Actor>, halebopp::Actor
>, boost::mpl::vector0<mpl_::na>
>::execute (PyObject *)'
/usr/include/boost/python/detail/make_keyword_range_fn.hpp:64: instantiated
from 'boost::python::api::object boost::python::detail
::make_keyword_range_constructor (
const boost::python::default_call_policies &
, const boost::python::detail::keyword_range &
, boost::python::objects::pointer_holder<
boost::shared_ptr<halebopp::Actor>, halebopp::Actor
> *, boost::mpl::vector0<mpl_::na> *
, boost::mpl::size<boost::mpl::vector0<mpl_::na> > *
)'
/usr/include/boost/python/init.hpp:330: instantiated from 'void boost::python
::detail::def_init_aux(
boost::python::class_<
halebopp::python::PyActor, boost::shared_ptr <halebopp::Actor>
, boost::noncopyable_::noncopyable
, boost::python::detail::not_specified
> &, const boost::mpl::vector0<mpl_::na> &
, boost::mpl::size<boost::mpl::vector0<mpl_::na> >
, const boost::python::default_call_policies &, const char *
, const boost::python::detail::keyword_range &
)'
/usr/include/boost/python/init.hpp:399: instantiated from 'static void boost
::python::detail::define_class_init_helper<
0
>::apply(
boost::python::class_ <
halebopp::python::PyActor, boost::shared_ptr<halebopp::Actor>
, boost::noncopyable_::noncopyable
, boost::python::detail::not_specified
> &, const boost::python::default_call_policies &
, const boost::python::init_base<boost::python::init<mpl_::void_> >
::visit(
boost::python::class_<
halebopp::python::PyActor, boost::shared_ptr<halebopp::Actor>
, boost::noncopyable_::noncopyable
, boost::python::detail::not_specified
> &
) const::signature &
, boost::mpl::size<boost::mpl::vector0<mpl_::na> >, const char *
, const boost::python::detail::keyword_range &
)'
/usr/include/boost/python/init.hpp:171: instantiated from 'void boost::python
::init_base<
boost::python::init<mpl_::void_>
>::visit(
boost::python::class_<
halebopp::python::PyActor, boost::shared_ptr<halebopp::Actor>
, boost::noncopyable_::noncopyable
, boost::python::detail::not_specified
> &
) const'
/usr/include/boost/python/def_visitor.hpp:31: instantiated from 'static void
boost::python::def_visitor_access::visit(
const boost::python::def_visitor<boost::python::init<mpl_::void_> > &
, boost::python::class_<
halebopp::python::PyActor, boost::shared_ptr<halebopp::Actor>
, boost::noncopyable_::noncopyable
, boost::python::detail::not_specified
> &
)'
/usr/include/boost/python/def_visitor.hpp:67: instantiated from 'void boost
::python::def_visitor<
boost::python::init<mpl_::void_>
>::visit(
boost::python::class_<
halebopp::python::PyActor, boost::shared_ptr<halebopp::Actor>
, boost::noncopyable_::noncopyable
, boost::python::detail::not_specified
> &
) const' scons: building terminated because of errors.
/usr/include/boost/python/class.hpp:225: instantiated from 'boost::python
::class_ <
T, boost::shared_ptr<halebopp::Actor>, boost::noncopyable_::noncopyable
, boost::python::detail::not_specified
> & boost::python::class_<
T, boost::shared_ptr<halebopp::Actor>, boost::noncopyable_::noncopyable
, boost::python::detail::not_specified
>::def(
const boost::python::def_visitor<boost::python::init <mpl_::void_> > &
)'
/usr/include/boost/python/class.hpp:501: instantiated from 'void boost
::python::class_<
T, boost::shared_ptr<halebopp::Actor>, boost::noncopyable_::noncopyable
, boost::python::detail::not_specified
>::initialize(const boost::python::init<mpl_::void_> &)'
/usr/include/boost/python/class.hpp:629: instantiated from 'boost::python
::class_ <T, X1, X2, X3>::class_(const char*, const char*) [with W =
halebopp::python::PyActor, X1 = boost::shared_ptr<halebopp::Actor>, X2 =
boost::noncopyable_::noncopyable, X3 = boost::python::detail::not_specified]'
src/nucleus/export_ogl.cpp:94:
instantiated from here
So the problem is that you're trying to wrap PyActor in a way that
implies it is default-constructible. But it's not; it's an abstract
class. You need no_init. See
http://www.boost.org/doc/libs/1_37_0/libs/python/doc/tutorial/doc/html/python/exposing.html#python.constructors
--
Dave Abrahams
BoostPro Computing
http://www.boostpro.com
_______________________________________________
Cplusplus-sig mailing list
[email protected]
http://mail.python.org/mailman/listinfo/cplusplus-sig