| // Test cases for classes that do *NOT* result in smart-pointer wrapping | |
| %module smart_pointer_multi_typedef | |
| %inline %{ | |
| struct Foo { | |
| int x; | |
| int getx() { return x; } | |
| }; | |
| typedef Foo FooObj; | |
| typedef FooObj *FooPtr; | |
| class Bar { | |
| Foo *f; | |
| public: | |
| Bar(Foo *f) : f(f) { } | |
| FooPtr operator->() { | |
| return f; | |
| } | |
| }; | |
| typedef Bar BarObj; | |
| typedef Bar &BarRef; | |
| class Spam { | |
| Bar *b; | |
| public: | |
| Spam(Bar *b) : b(b) { } | |
| BarObj operator->() { | |
| return *b; | |
| } | |
| }; | |
| class Grok { | |
| Bar *b; | |
| public: | |
| Grok(Bar *b) : b(b) { } | |
| BarRef operator->() { | |
| return *b; | |
| } | |
| }; | |
| %} | |