summaryrefslogtreecommitdiff
path: root/Examples/test-suite/smart_pointer_multi.i
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2009-08-18 20:56:02 +0000
committerLorry <lorry@roadtrain.codethink.co.uk>2012-09-25 16:59:08 +0000
commit9f8a09ed743cedd9547bf0661d518647966ab114 (patch)
tree9c7803d3b27a8ec22e91792ac7f7932efa128b20 /Examples/test-suite/smart_pointer_multi.i
downloadswig-tarball-master.tar.gz
Imported from /srv/lorry/lorry-area/swig-tarball/swig-1.3.40.tar.gz.HEADswig-1.3.40master
Diffstat (limited to 'Examples/test-suite/smart_pointer_multi.i')
-rw-r--r--Examples/test-suite/smart_pointer_multi.i39
1 files changed, 39 insertions, 0 deletions
diff --git a/Examples/test-suite/smart_pointer_multi.i b/Examples/test-suite/smart_pointer_multi.i
new file mode 100644
index 0000000..4b0aa0e
--- /dev/null
+++ b/Examples/test-suite/smart_pointer_multi.i
@@ -0,0 +1,39 @@
+// Test cases for classes that do *NOT* result in smart-pointer wrapping
+%module smart_pointer_multi
+
+%inline %{
+struct Foo {
+ int x;
+ int getx() { return x; }
+};
+
+class Bar {
+ Foo *f;
+public:
+ Bar(Foo *f) : f(f) { }
+ Foo *operator->() {
+ return f;
+ }
+};
+
+class Spam {
+ Bar *b;
+public:
+ Spam(Bar *b) : b(b) { }
+ Bar operator->() {
+ return *b;
+ }
+};
+
+class Grok {
+ Bar *b;
+public:
+ Grok(Bar *b) : b(b) { }
+ Bar &operator->() {
+ return *b;
+ }
+};
+
+%}
+
+