| %module using_pointers |
| |
| #ifdef SWIGCSHARP |
| %csmethodmodifiers x "public new" |
| #endif |
| |
| // throw is invalid in C++17 and later, only SWIG to use it |
| #define TESTCASE_THROW2(T1, T2) throw(T1, T2) |
| %{ |
| #define TESTCASE_THROW2(T1, T2) |
| %} |
| |
| %inline %{ |
| class Foo { |
| public: |
| int x; |
| virtual ~Foo() { } |
| virtual Foo* blah() { return this; } |
| virtual Foo* exception_spec(int what_to_throw) TESTCASE_THROW2(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; |
| }; |
| |
| %} |
| |