The great merge
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@4141 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
5fcae5eb66
commit
12a43edc2d
1508 changed files with 125983 additions and 44037 deletions
26
Examples/ruby/functor/example.i
Normal file
26
Examples/ruby/functor/example.i
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
/* 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>;
|
||||
Loading…
Add table
Add a link
Reference in a new issue