mirror of https://github.com/swig/swig
48 lines
667 B
OpenEdge ABL
48 lines
667 B
OpenEdge ABL
// Tests passing of references to primitive datatypes
|
|
%module primitive_ref
|
|
|
|
%define ref(type,name)
|
|
%inline %{
|
|
const type &ref_##name(const type &x) {
|
|
static type y = x;
|
|
return y;
|
|
}
|
|
%}
|
|
%enddef
|
|
|
|
ref(int,int);
|
|
ref(unsigned int, uint);
|
|
ref(short, short);
|
|
ref(unsigned short, ushort);
|
|
ref(long,long);
|
|
ref(unsigned long, ulong);
|
|
ref(signed char, schar);
|
|
ref(unsigned char, uchar);
|
|
ref(char, char);
|
|
ref(float, float);
|
|
ref(double, double);
|
|
ref(bool, bool);
|
|
ref(long long, longlong);
|
|
ref(unsigned long long, ulonglong);
|
|
|
|
|
|
%inline %{
|
|
|
|
int ref_over(int a)
|
|
{
|
|
return a;
|
|
}
|
|
|
|
struct A
|
|
{
|
|
int v;
|
|
A(int V) :v(V) {}
|
|
};
|
|
|
|
int ref_over(const A& a)
|
|
{
|
|
return a.v;
|
|
}
|
|
|
|
%}
|