// Tests typedef through member pointers %module typedef_mptr %{ #if defined(__SUNPRO_CC) #pragma error_messages (off, badargtype2w) /* Formal argument ... is being passed extern "C" ... */ #pragma error_messages (off, wbadinit) /* Using extern "C" ... to initialize ... */ #endif %} #if defined(SWIGPYTHON) || defined(SWIGOCAML) %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 #if defined(SWIGPYTHON) || defined(SWIGOCAML) %constant int (Foo::*add)(int,int) = &Foo::add; %constant Integer (FooObj::*sub)(Integer,Integer) = &FooObj::sub; #endif