-
Couldn't load subscription status.
- Fork 9
Open
Labels
Description
Summary
Automatically generate bindings for overloaded operators. For example:
class Foo
{
public:
Foo();
~Foo();
double& operator[](unsigned index);
};An example of generated bindings for the overloaded operator[]:
void register_Foo_class(py::module &m)
{
py::class_<Foo>(m, "Foo")
// ...
.def("__setitem__", &Foo::operator[], "")
.def("__getitem__", &Foo::operator[], "")
;
}This can currently be added in using custom templates:
class Foo(cppwg.templates.custom.Custom):
def get_class_cpp_def_code(self, class_name):
code = """\
.def("__getitem__", &{class_name}::operator[])
.def("__setitem__", &{class_name}::operator[])
""".format(class_name=class_name)
return code