import source from 1.3.40
[external/swig.git] / Examples / test-suite / typedef_mptr.i
1 // Tests typedef through member pointers
2
3 %module typedef_mptr
4
5 #if defined(SWIGPYTHON) || defined(SWIGOCAML)
6
7 %inline %{
8
9 class Foo {
10 public:
11     int add(int x, int y) {
12         return x+y;
13     }
14     int sub(int x, int y) {
15         return x-y;
16     }
17     int do_op(int x, int y, int (Foo::*op)(int, int)) {
18         return (this->*op)(x,y);
19     }
20 };
21
22 typedef Foo FooObj;
23 typedef int Integer;
24
25 Integer do_op(Foo *f, Integer x, Integer y, Integer (FooObj::*op)(Integer, Integer)) {
26     return f->do_op(x,y,op);
27 }
28 %}
29 #endif
30
31 #if defined(SWIGPYTHON) || defined(SWIGOCAML)
32 %constant int (Foo::*add)(int,int) = &Foo::add;
33 %constant Integer (FooObj::*sub)(Integer,Integer) = &FooObj::sub;
34 #endif