| // 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; |
| } |
| |
| %} |