blob: 5ef50c50da97019394dec3598cd875ae4f89a6cb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
// Tests handling of inheritance when a base class isn't provided to SWIG
%module inherit_missing
%warnfilter(402);
%{
/* Define the class internally, but don't tell SWIG about it */
class Foo {
public:
virtual ~Foo() {}
virtual char *blah() {
return (char *) "Foo::blah";
}
};
%}
/* Forward declaration. Says that Foo is a class, but doesn't provide a definition */
class Foo;
%newobject new_Foo;
%delobject delete_Foo;
%inline %{
class Bar : public Foo {
public:
virtual ~Bar() {}
virtual char *blah() {
return (char *) "Bar::blah";
};
};
class Spam : public Bar {
public:
virtual char *blah() {
return (char *) "Spam::blah";
};
};
Foo *new_Foo() {
return new Foo();
}
void delete_Foo(Foo *f) {
delete f;
}
char *do_blah(Foo *f) {
return f->blah();
}
%}
|