- rename example modules from "example" to "swigexample", to avoid a warning from shadowing the Octave built-in function "example" - remove deprecated "static" Makefile targets: there is no longer an option to build static Octave modules in the Examples Makefile - emacs whitespace cleanup run on all files
25 lines
587 B
OpenEdge ABL
25 lines
587 B
OpenEdge ABL
/* File : example.i */
|
|
%module swigexample
|
|
|
|
|
|
%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>;
|