Boost logo

Boost Users :

From: David Abrahams (dave_at_[hidden])
Date: 2003-08-11 23:38:58


cavok_at_[hidden] writes:

> hi,
>
> i have a c++ function that returns a reference to a c++ object. i want
> to expose this function to Python making it return the Python version
> of the object. i'm using Boost.Python.
>
> i understood that i have to use to_python_converter

Why do you think that? Your code should work find without it as
written.

> but the body of the
> A_to_Python::convert function is mystery for me. Boost documentation's
> example solves the problem in a manner i'm not able to apply to my case.
> my A object is complex and i'd like to somewhat (re)use the class_ object.
>
> ---------------- CUT HERE ----------------
> #include <boost/python.hpp>
>
> using namespace boost::python;
>
> struct A
> {
> void f() {}
> };
>
> A a;
>
> struct A_to_Python
> {
> static PyObject* convert(const A& a)
> {
> // documentation says:
> // return PyObject_New(noddy_NoddyObject, &noddy_NoddyType);
> }
> };
>
> A& get_A() { return a; }
>
> BOOST_PYTHON_MODULE(hello)
> {
> class_<A>("A")
> .def("f", &A::f)
> ;
>
> to_python_converter<A, A_to_Python>();
>
> def("get_A", get_A, return_value_policy<reference_existing_object>());
> }
> ---------------- CUT HERE ----------------
>
> please, somebody enlighten me.
>
> many thanks
> domenico
>
> -----[ Domenico Andreoli, aka cavok
> --[ http://filibusta.crema.unimi.it/~cavok/gpgkey.asc
> ---[ 3A0F 2F80 F79C 678A 8936 4FEE 0677 9033 A20E BC50
>
>
> Info: <http://www.boost.org>
> Wiki: <http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl>
> Unsubscribe: <mailto:boost-users-unsubscribe_at_[hidden]>
>
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
>
>
>

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net