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

Reply via email to