26 lines
611 B
OpenEdge ABL
26 lines
611 B
OpenEdge ABL
/* File : example.i */
|
|
%module swigexample
|
|
|
|
%feature("autodoc", 1);
|
|
|
|
%inline %{
|
|
// From B. Strousjoup, "The C++ Programming Language, Third Edition", p. 514
|
|
template<class T> class Sum {
|
|
T res;
|
|
public:
|
|
Sum(T i = 0) : res(i) { }
|
|
void operator() (T x) { res += x; }
|
|
T result() const { return res; }
|
|
};
|
|
|
|
%}
|
|
|
|
// Rename the application operator to __call__ for python.
|
|
// Note: this is normally automatic, but if you had to do it yourself
|
|
// you would use this directive:
|
|
//
|
|
// %rename(__call__) *::operator();
|
|
|
|
// Instantiate a few versions
|
|
%template(intSum) Sum<int>;
|
|
%template(doubleSum) Sum<double>;
|