Hello everybody,

I'm very new to Boost.Python, and I just spent hours trying to do something 
trivial, and couldn't get it. The C++ code is:

void add(int const a, int const b, int const& c)
{
    c = a + b;
}

BOOST_PYTHON_MODULE(hello_ext)
{
    using namespace boost::python;
    def("add", add);
}

When I tried to call this function from python I got the following error:
>>> import hello_ext
>>> x = int()
>>> y = int()
>>> z = int()
>>> hello_ext.add(x,y,z)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
Boost.Python.ArgumentError: Python argument types in
    hello_ext.add(int, int, int)
did not match C++ signature:
    add(int, int, int {lvalue})

How can I get this to work?
I must emphasize that I wish to have functions that get arguments by reference 
and change them. Returning the values using the return mechanism isn't what I 
want to do (I have functions that get and set many many arguments, and I hardly 
wish to rewrite them).

Thanks,
Oded


      

_______________________________________________
Cplusplus-sig mailing list
Cplusplus-sig@python.org
http://mail.python.org/mailman/listinfo/cplusplus-sig

Reply via email to