summaryrefslogtreecommitdiff
path: root/Examples/test-suite/smart_pointer_member.i
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/test-suite/smart_pointer_member.i')
-rw-r--r--Examples/test-suite/smart_pointer_member.i56
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;
+%}