summaryrefslogtreecommitdiff
path: root/Examples/test-suite/using_pointers.i
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/test-suite/using_pointers.i')
-rw-r--r--Examples/test-suite/using_pointers.i36
1 files changed, 36 insertions, 0 deletions
diff --git a/Examples/test-suite/using_pointers.i b/Examples/test-suite/using_pointers.i
new file mode 100644
index 0000000..b2d6abe
--- /dev/null
+++ b/Examples/test-suite/using_pointers.i
@@ -0,0 +1,36 @@
+%module using_pointers
+
+#ifdef SWIGCSHARP
+%csmethodmodifiers x "public new"
+#endif
+
+%{
+#if defined(_MSC_VER)
+ #pragma warning(disable: 4290) // C++ exception specification ignored except to indicate a function is not __declspec(nothrow)
+#endif
+%}
+
+%inline %{
+ class Foo {
+ public:
+ int x;
+ virtual ~Foo() { }
+ virtual Foo* blah() { return this; }
+ virtual Foo* exception_spec(int what_to_throw) throw (int, const char *) {
+ int num = 10;
+ const char *str = "exception message";
+ if (what_to_throw == 1) throw num;
+ else if (what_to_throw == 2) throw str;
+ return 0;
+ }
+ };
+
+ class FooBar : public Foo {
+ public:
+ using Foo::blah;
+ using Foo::x;
+ using Foo::exception_spec;
+ };
+
+%}
+