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 Cplusplus-sig@python.org http://mail.python.org/mailman/listinfo/cplusplus-sig