| Index: swig/Lib/typemaps/std_except.swg
|
| ===================================================================
|
| --- swig/Lib/typemaps/std_except.swg (revision 0)
|
| +++ swig/Lib/typemaps/std_except.swg (revision 0)
|
| @@ -0,0 +1,96 @@
|
| +%include <typemaps/exception.swg>
|
| +%include <std/std_except.i>
|
| +
|
| +/*
|
| + Mark all of std exception classes as "exception classes" via
|
| + the "exceptionclass" feature.
|
| +
|
| + If needed, you can disable it by using %noexceptionclass.
|
| +*/
|
| +
|
| +%define %std_exception_map(Exception, Code)
|
| + %exceptionclass Exception;
|
| +#if !defined(SWIG_STD_EXCEPTIONS_AS_CLASSES)
|
| + %typemap(throws,noblock=1) Exception {
|
| + SWIG_exception_fail(Code, $1.what());
|
| + }
|
| + %ignore Exception;
|
| + struct Exception {
|
| + };
|
| +#endif
|
| +%enddef
|
| +
|
| +namespace std {
|
| + %std_exception_map(bad_exception, SWIG_SystemError);
|
| + %std_exception_map(domain_error, SWIG_ValueError);
|
| + %std_exception_map(exception, SWIG_SystemError);
|
| + %std_exception_map(invalid_argument, SWIG_ValueError);
|
| + %std_exception_map(length_error, SWIG_IndexError);
|
| + %std_exception_map(logic_error, SWIG_RuntimeError);
|
| + %std_exception_map(out_of_range, SWIG_IndexError);
|
| + %std_exception_map(overflow_error, SWIG_OverflowError);
|
| + %std_exception_map(range_error, SWIG_OverflowError);
|
| + %std_exception_map(runtime_error, SWIG_RuntimeError);
|
| + %std_exception_map(underflow_error, SWIG_OverflowError);
|
| +}
|
| +
|
| +#if defined(SWIG_STD_EXCEPTIONS_AS_CLASSES)
|
| +
|
| +namespace std {
|
| + struct exception
|
| + {
|
| + virtual ~exception() throw();
|
| + virtual const char* what() const throw();
|
| + };
|
| +
|
| + struct bad_exception : exception
|
| + {
|
| + };
|
| +
|
| + struct logic_error : exception
|
| + {
|
| + logic_error(const string& msg);
|
| + };
|
| +
|
| + struct domain_error : logic_error
|
| + {
|
| + domain_error(const string& msg);
|
| + };
|
| +
|
| + struct invalid_argument : logic_error
|
| + {
|
| + invalid_argument(const string& msg);
|
| + };
|
| +
|
| + struct length_error : logic_error
|
| + {
|
| + length_error(const string& msg);
|
| + };
|
| +
|
| + struct out_of_range : logic_error
|
| + {
|
| + out_of_range(const string& msg);
|
| + };
|
| +
|
| + struct runtime_error : exception
|
| + {
|
| + runtime_error(const string& msg);
|
| + };
|
| +
|
| + struct range_error : runtime_error
|
| + {
|
| + range_error(const string& msg);
|
| + };
|
| +
|
| + struct overflow_error : runtime_error
|
| + {
|
| + overflow_error(const string& msg);
|
| + };
|
| +
|
| + struct underflow_error : runtime_error
|
| + {
|
| + underflow_error(const string& msg);
|
| + };
|
| +}
|
| +
|
| +#endif
|
|
|