diff options
Diffstat (limited to 'Examples/test-suite/typedef_mptr.i')
-rw-r--r-- | Examples/test-suite/typedef_mptr.i | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/Examples/test-suite/typedef_mptr.i b/Examples/test-suite/typedef_mptr.i new file mode 100644 index 000000000..5e64c8ac7 --- /dev/null +++ b/Examples/test-suite/typedef_mptr.i @@ -0,0 +1,34 @@ +// Tests typedef through member pointers + +%module typedef_mptr + +#ifdef SWIGPYTHON + +%inline %{ + +class Foo { +public: + int add(int x, int y) { + return x+y; + } + int sub(int x, int y) { + return x-y; + } + int do_op(int x, int y, int (Foo::*op)(int, int)) { + return (this->*op)(x,y); + } +}; + +typedef Foo FooObj; +typedef int Integer; + +Integer do_op(Foo *f, Integer x, Integer y, Integer (FooObj::*op)(Integer, Integer)) { + return f->do_op(x,y,op); +} +%} +#endif + +#ifdef SWIGPYTHON +%constant int (Foo::*add)(int,int) = &Foo::add; +%constant Integer (FooObj::*sub)(Integer,Integer) = &FooObj::sub; +#endif |