git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12157 626c5289-ae23-0410-ae9c-e8d60b6d4f22
16 lines
682 B
OpenEdge ABL
16 lines
682 B
OpenEdge ABL
%module funcptr_cpp
|
|
|
|
%inline %{
|
|
|
|
int addByValue(const int &a, int b) { return a+b; }
|
|
int * addByPointer(const int &a, int b) { static int val; val = a+b; return &val; }
|
|
int & addByReference(const int &a, int b) { static int val; val = a+b; return val; }
|
|
|
|
int call1(int (*d)(const int &, int), int a, int b) { return d(a, b); }
|
|
int call2(int * (*d)(const int &, int), int a, int b) { return *d(a, b); }
|
|
int call3(int & (*d)(const int &, int), int a, int b) { return d(a, b); }
|
|
%}
|
|
|
|
%constant int (*ADD_BY_VALUE)(const int &, int) = addByValue;
|
|
%constant int * (*ADD_BY_POINTER)(const int &, int) = addByPointer;
|
|
%constant int & (*ADD_BY_REFERENCE)(const int &, int) = addByReference;
|