[C++-sig] operator+(A, B) without B::B() default constructor in boost.python
Hans Roessler
hansroessler at yahoo.de
Thu May 14 15:15:30 CEST 2009
Hello,
how can I wrap the following overloaded operator+ using boost.python?
The code as is fails with
>...
>pytest.cpp: In function ‘void init_module_pytest()’:
>pytest.cpp:19: error: expected primary-expression before ‘(’ token
>...
If I try ".def(self+B())" instead of ".def(self+other<B>())", the error is
>...
>pytest.cpp: In function ‘void init_module_pytest()’:
>pytest.cpp:17: error: no matching function for call to ‘B::B()’
>...
best wishes
Hans
pytest.cpp:
#include <boost/python.hpp>
using namespace boost::python;
class A{
public:
};
class B{
public:
B(int i){};
};
int operator+(const A& a,const B& b){return 42;};
BOOST_PYTHON_MODULE(pytest)
{
class_<A>("A")
.def(self+other<B>()) //.def(self+B()) //line 17
;
class_<B,boost::noncopyable>("B",init<int>) //line 19
;
}
More information about the Cplusplus-sig
mailing list