[C++-sig] Overloaded functions returning Ll and r values
Borek Patzak
borpat at seznam.cz
Sat Jul 26 16:51:51 CEST 2008
Hi, I have a question concerning wrapping overloaded functions returning
both l-value and r-value.
The simple example:
class Array {
int size;
double *values;
Array (int size) {this->size = size; values = new double[size]; }
Array () {size=0; values=NULL;}
~Array () {if (size) delete[] values;}
inline double &at(int i) { return values [ i - 1 ]; }
inline double at(int i) const { return values [ i - 1 ]; }
};
double (Array::*at1)(int) const = &Array::at;
double& (Array::*at2)(int) = &Array::at;
BOOST_PYTHON_MODULE (array_ext)
{
class_<Array>("Array")
.def(init<int>())
// the following line generates an error, when invoking bjam
.def("at", at2, return_internal_reference<>())
.def("get", at1)
;
}
I am unable to generate wrapper for "double& Array ::at(int i)".
Any help?
Best regards,
Borek
More information about the Cplusplus-sig
mailing list