diff options
Diffstat (limited to 'Examples/test-suite/smart_pointer_member.i')
| -rw-r--r-- | Examples/test-suite/smart_pointer_member.i | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/Examples/test-suite/smart_pointer_member.i b/Examples/test-suite/smart_pointer_member.i new file mode 100644 index 0000000..7a77626 --- /dev/null +++ b/Examples/test-suite/smart_pointer_member.i @@ -0,0 +1,56 @@ +%module smart_pointer_member + + + +%inline %{ + + class Foo { + public: + int x[4]; + int y; + static const int z; + static const int ZZ = 3; + static int zx; + + static int boo() { return 0;} + + friend int foo(Foo* foo) { return 0;} + }; + + class Bar { + Foo *f; + public: + Bar(Foo *f) : f(f) { } + Foo *operator->() { + return f; + } + + static int bua() { return 0;} + }; + + class CBar { + Foo *f; + public: + CBar(Foo *f) : f(f) { } + const Foo *operator->() { + return f; + } + }; + + + int get_y(Bar *b) + { + return (*b)->y; + } + + int get_z(Bar *b) + { + return (*b)->z; + } +%} + + +%{ + const int Foo::z = 3; + int Foo::zx; +%} |
