diff options
Diffstat (limited to 'trunk/Examples/test-suite/cpp_typedef.i')
-rw-r--r-- | trunk/Examples/test-suite/cpp_typedef.i | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/trunk/Examples/test-suite/cpp_typedef.i b/trunk/Examples/test-suite/cpp_typedef.i new file mode 100644 index 000000000..f869f4d9c --- /dev/null +++ b/trunk/Examples/test-suite/cpp_typedef.i @@ -0,0 +1,46 @@ +// 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 { +} UnnamedStruct; + +typedef struct NamedStruct { +} 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;}; +}; + +%} + + |