diff options
Diffstat (limited to 'Examples/test-suite/cpp_nodefault.i')
-rw-r--r-- | Examples/test-suite/cpp_nodefault.i | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/Examples/test-suite/cpp_nodefault.i b/Examples/test-suite/cpp_nodefault.i new file mode 100644 index 000000000..fc2703618 --- /dev/null +++ b/Examples/test-suite/cpp_nodefault.i @@ -0,0 +1,42 @@ +// This file tests SWIG pass/return by value for +// a class with no default constructor + +%module cpp_nodefault + +%inline %{ + +class Foo { +public: + int a; + Foo(int x, int y) { } + ~Foo() { + printf("Destroying foo\n"); + } +}; + +Foo create(int x, int y) { + return Foo(x,y); +} + +typedef Foo Foo_t; + +void consume(Foo f, Foo_t g) {} + +class Bar { +public: + void consume(Foo f, Foo_t g) {} + Foo create(int x, int y) { + return Foo(x,y); + } +}; + + +%} + +%{ +Foo gvar = Foo(3,4); +%} + +Foo gvar; + + |