/* File : example.i */ %module my_example enum color { RED=10, BLUE, GREEN }; class Foo { public: Foo() { } enum speed { IMPULSE, WARP, LUDICROUS }; void enum_test(speed s); }; void enum_test(color c, Foo::speed s); %include pointer.i /* Next we'll use some typemaps */ %include typemaps.i %typemap(out) int * { WHATEVER MAKES YOU HAPPY AS RESULT } %typemap(in) int * { WHATEVER MAKES YOU HAPPY AS PARAMETER } %pragma(xml) DEBUG="false"; extern int * my_gcd(const char * x, int * y[], int * r, int (*op)(int,int)) const; extern double my_foo; void my_void(); my_empty(); const double my_dutch = 1.0; union my_union { int my_iii; char my_ccc; }; struct my_struct { public: virtual ~my_struct(); int my_foo(); protected: int my_bar; double x, y; virtual double area() = 0; static int nshapes; }; class my_class : public my_struct, public my_union { public: my_class( char c ); private: ~my_class(); virtual const int * my_func( my_class , char * * x, int y[], const int & r) const; double my_foo[128]; const my_int i; }; typedef int my_int;