%module extend_variable // Tests %extend for variables %inline %{ class ExtendMe { double var; public: ExtendMe() : var(0.0) {} bool get(double &d) { d = var; return true; } bool set(const double &d) { var = d; return true; } }; %} %extend ExtendMe { double ExtendVar; }; %{ // If possible, all language modules should use this naming format for consistency void ExtendMe_ExtendVar_set(ExtendMe *thisptr, double value) { thisptr->set(value); } double ExtendMe_ExtendVar_get(ExtendMe *thisptr) { double value = 0; thisptr->get(value); return value; } %} %{ class Foo { }; %} class Foo { public: %extend { static const int Bar = 42; } }; %inline { namespace ns1 { struct Bar { } ; } } %{ int ns1_Bar_x_get(ns1::Bar *self) { return 1; } void ns1_Bar_x_set(ns1::Bar *self, int x) { } %} %extend ns1::Bar { int x; }