[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Lua/SWIG: output parameters of custom types as references?
- From: Sebastian Wolff <sw@...>
- Date: Wed, 29 Apr 2009 16:49:49 +0200
Dear Lua community,
I hope someone already encountered the following problem and may assist
finding a solution.
I have an own object class type MyClass and want to wrap a C++ library
using SWIG 1.3.39 to be used by Lua. Using this library I often have to
wrap methods of the form
void foo1(const MyClass & a, MyClass & b)
{
b.assign_and_action(a);
}
void foo2(const MyClass & a, MyClass & b)
{
b.modify(a);
}
void foo2b(const int &a, int &b)
{
b += a;
}
'foo1' simply returns 'b' reading 'a'. foo2 and foo2b modify 'b' using
'a'. Therefore, in Lua I want to call them by
b = foo1(a)
b = foo2(a,c)
b = foo2b(a,c)
To let SWIG know about the parameter types one has to specify which is
INPUT, OUTPUT or both:
void foo1(const MyClass & INPUT, MyClass & OUPUT);
void foo2(const MyClass & INPUT, MyClass & INOUT);
void foo2b(const int & INPUT, int & INOUT);
For 'foo2b' this is working fine. Somehow it does not work for 'foo1'
and 'foo2'. In the latter, all parameters are considered being input
variables.
Any ideas what went wrong?
Best regards
Seb