| // 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;}; |
| }; |
| |
| %} |
| |
| |