mirror of https://github.com/swig/swig
26 lines
597 B
OpenEdge ABL
26 lines
597 B
OpenEdge ABL
%module(directors="1") director_exception_catches
|
|
|
|
%include <std_string.i>
|
|
%feature("director") BaseClass;
|
|
|
|
%{
|
|
// define dummy director exception classes to prevent spurious errors
|
|
// in target languages that do not support directors.
|
|
|
|
#ifndef SWIG_DIRECTORS
|
|
namespace Swig {
|
|
class DirectorException {};
|
|
}
|
|
#endif /* !SWIG_DIRECTORS */
|
|
%}
|
|
|
|
%catches(Swig::DirectorException) BaseClass::call_description;
|
|
|
|
%inline %{
|
|
struct BaseClass {
|
|
virtual std::string description() const = 0;
|
|
static std::string call_description(BaseClass& bc) { return bc.description(); }
|
|
virtual ~BaseClass() {}
|
|
};
|
|
%}
|