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
|
// This file tests SWIG's tracking of C++ typedef declarations
%module cpp_typedef
%{
class Bar {
public:
};
%}
%inline %{
class Foo {
public:
typedef Bar SomeBar;
typedef SomeBar SomeOtherBar;
SomeOtherBar bar() {
SomeOtherBar b;
return b;
}
static SomeOtherBar sbar() {
SomeOtherBar b;
return b;
}
};
// Test that the correct types are used for typedef struct declarations
typedef struct {
int something;
void m() {}
} UnnamedStruct;
typedef struct NamedStruct {
int something;
void m() {}
} TypedefNamedStruct;
typedef TypedefNamedStruct DoubleTypedef;
class Test {
public:
UnnamedStruct test1(UnnamedStruct a) {return a;};
struct NamedStruct test2(struct NamedStruct a) {return a;};
TypedefNamedStruct test3(TypedefNamedStruct a) {return a;};
DoubleTypedef test4(DoubleTypedef a) {return a;};
};
%}
|