1 %module extend_placement
3 // Tests placement of %extend directives
8 Foo(int a) { return new Foo(); }
9 ~Foo() { delete $self;}
10 int spam(int x) { return x; }
11 int spam(int x, int y) { return x + y ; }
12 int spam(int x, int y,int z) { return x + y ; }
13 int spam(Foo f, double d = 10.0) { return 0; }
22 %extend { Foo(int a, int b) { return new Foo(); } }
25 int spam() { return 1; }
26 int spam(const char* c) { return 2; }
36 int spam() { return 1; }
37 int spam(const char* c) { return 2; }
43 Bar(int a) { return new Bar(); }
44 ~Bar() { delete $self;}
45 int spam() { return 1}
46 int spam(int x) { return x; }
47 int spam(int x, int y) { return x + y ; }
48 int spam(int x, int y,int z) { return x + y ; }
49 int spam(Bar b, double d = 10.0) { return 0; }
58 FooT(int a) { return new FooT<T>(); }
59 ~FooT() { delete $self;}
60 int spam(int x) { return x; }
61 int spam(int x, int y) { return x + y ; }
62 int spam(int x, int y,int z) { return x + y ; }
63 int spam(Foo f, double d = 10.0) { return 0; }
73 %extend { FooT(int a, int b) { return new FooT<T>(); } }
76 int spam() { return 1; }
77 int spam(const char* c) { return 2; }
81 %template(FooTi) FooT<int>;
91 int spam() { return 1; }
92 int spam(const char* c) { return 2; }
98 BarT(int a) { return new BarT<T>(); }
99 ~BarT() { delete $self;}
100 int spam() { return 1}
101 int spam(int x) { return x; }
102 int spam(int x, int y) { return x + y ; }
103 int spam(int x, int y,int z) { return x + y ; }
104 int spam(Bar b, double d = 10.0) { return 0; }
107 %template(BarTi) BarT<int>;