diff options
author | William S Fulton <wsf@fultondesigns.co.uk> | 2018-05-03 19:20:42 +0100 |
---|---|---|
committer | William S Fulton <wsf@fultondesigns.co.uk> | 2018-05-04 20:02:13 +0100 |
commit | c9a10eb7266e8c411541a00af2806e068850f58e (patch) | |
tree | 21fce5ef4335bc0c070ac5ee4cfb6b2d79cc9ba7 /Examples/python/exception | |
parent | 4e0b2f1402217bb9ea864833c5bbdaad82450709 (diff) | |
download | swig-c9a10eb7266e8c411541a00af2806e068850f58e.tar.gz |
Examples update to support C++17: exception specification throw removal
Diffstat (limited to 'Examples/python/exception')
-rw-r--r-- | Examples/python/exception/example.h | 27 | ||||
-rw-r--r-- | Examples/python/exception/example.i | 6 |
2 files changed, 12 insertions, 21 deletions
diff --git a/Examples/python/exception/example.h b/Examples/python/exception/example.h index ea3b4fc63..bc744cda7 100644 --- a/Examples/python/exception/example.h +++ b/Examples/python/exception/example.h @@ -1,6 +1,6 @@ /* File : example.h */ -#include <string> +#include <string.h> #ifndef SWIG struct A { }; @@ -16,34 +16,26 @@ public: char msg[256]; }; -#if defined(_MSC_VER) - #pragma warning(disable: 4290) // C++ exception specification ignored except to indicate a function is not __declspec(nothrow) -#endif -#if __GNUC__ >= 7 - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wdeprecated" // dynamic exception specifications are deprecated in C++11 -#endif - class Test { public: - int simple() throw(int) { + int simple() { throw(37); return 1; } - int message() throw(const char *) { + int message() { throw("I died."); return 1; } - int hosed() throw(Exc) { + int hosed() { throw(Exc(42,"Hosed")); return 1; } - int unknown() throw(A*) { + int unknown() { static A a; throw &a; return 1; } - int multi(int x) throw(int, const char *, Exc) { + int multi(int x) { if (x == 1) throw(37); if (x == 2) throw("Bleah!"); if (x == 3) throw(Exc(42,"No-go-diggy-die")); @@ -51,10 +43,3 @@ public: } }; -#if defined(_MSC_VER) - #pragma warning(default: 4290) // C++ exception specification ignored except to indicate a function is not __declspec(nothrow) -#endif -#if __GNUC__ >= 7 - #pragma GCC diagnostic pop -#endif - diff --git a/Examples/python/exception/example.i b/Examples/python/exception/example.i index 817c5221c..3a3a6548f 100644 --- a/Examples/python/exception/example.i +++ b/Examples/python/exception/example.i @@ -7,6 +7,12 @@ %include "std_string.i" +%catches(int) Test::simple(); +%catches(const char *) Test::message(); +%catches(Exc) Test::hosed(); +%catches(A*) Test::unknown(); +%catches(int, const char *, Exc) Test::multi(int x); + /* Let's just grab the original header file here */ %include "example.h" |