/trunk/Examples/ruby/functor/example.i
Swig | 26 lines | 14 code | 4 blank | 8 comment | 0 complexity | e213861e4bd8bdd93407786b3082a507 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- /* File : example.i */
- %module example
- %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 Ruby.
- * 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>;