Thank you Dave,

> If you get the python method into a boost::python::object, you can just
> do:
>
>   boost::python::object the_target
>   the_target.attr("the_method")(foo);
>
>> Obviously I need to create a Python version of this object.
>
> Boost.Python can handle that for you behind the scenes.

Oh, I wasn't aware of that. Epic.

> Where?!
Sorry, my bad, misunderstanding of docs. Also ptr() method of Object
class enables its use in low-level Python C API functions.

Thanks for help!

2011/11/10 Dave Abrahams <d...@boostpro.com>:
>
> on Thu Nov 10 2011, Wojciech Mamrak <wmamrak-AT-gmail.com> wrote:
>
>> Hello,
>>
>> I am aware about the possibility to register converters to- and from-
>> Python, which enable the implicit conversions between user-defined and
>> build-in types in Python.
>> My question is different: Is it possible to use Boost.Python to
>> convert existing data structures from C++ to Python?
>>
>> Simple example:
>>
>> //C++ struct:
>> struct Foo {
>>     int x, int y;
>> };
>>
>> class_<Foo>("Foo")
>>     .def_readwrite("x", &Foo::x)
>>     .def_readwrite("y", &Foo::y);
>>
>> //instance of Foo
>> Foo foo = {1, 2};
>>
>> Now I would like to pass foo object to some Python method.
>
> If you get the python method into a boost::python::object, you can just
> do:
>
>   boost::python::object the_target
>   the_target.attr("the_method")(foo);
>
>> Obviously I need to create a Python version of this object.
>
> Boost.Python can handle that for you behind the scenes.
>
>> Python is aware of the Foo definition thanks to Boost.Python, but
>> still, is there any other method of transferring the data than the
>> one, which uses some glue function which creates a Python Foo instance
>> based on all members of C++ foo passed separately to it? As far as I
>> am aware, Python converters are not intended to help here.
>>
>> The docs claim, that BOOST::PYTHON::Object can not be used as a
>> replacement of PyObject, i.e. e.g. it can't be passed to some Python
>> function and used inside of it.
>
> Where?!
>
>
> --
> Dave Abrahams
> BoostPro Computing
> http://www.boostpro.com
>
> _______________________________________________
> Cplusplus-sig mailing list
> Cplusplus-sig@python.org
> http://mail.python.org/mailman/listinfo/cplusplus-sig
>
_______________________________________________
Cplusplus-sig mailing list
Cplusplus-sig@python.org
http://mail.python.org/mailman/listinfo/cplusplus-sig

Reply via email to