| /* File : li_std_except_as_class.i */ |
| %module li_std_except_as_class |
| |
| /* NOTE: SF bug 1295: |
| * if there were also functions throwing 'std::logic_error' and |
| * 'std::exception' then the bug would not be fully replicated */ |
| |
| %{ |
| #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 |
| %} |
| |
| %{ |
| #include <exception> |
| #include <stdexcept> |
| void test_domain_error() throw(std::domain_error) |
| { throw std::domain_error("std::domain_error"); } |
| %} |
| |
| %include <std_string.i> |
| #define SWIG_STD_EXCEPTIONS_AS_CLASSES |
| %include <std_except.i> |
| void test_domain_error() throw(std::domain_error) |
| { throw std::domain_error("std::domain_error"); } |
| |
| %inline %{ |
| #ifdef SWIGPYTHON_BUILTIN |
| bool is_python_builtin() { return true; } |
| #else |
| bool is_python_builtin() { return false; } |
| #endif |
| %} |
| |
| %{ |
| #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 |
| %} |