From: Bob H. <bh...@co...> - 2014-05-20 22:18:40
|
Bump. On 5/8/2014 2:02 PM, Bob Hood wrote: > I'm using SWIG 2.0.4 with Python. > > I've run into the first instance where I need to have an 'argout' mechanism > for a Director-controlled method. Something along these lines: > > typedef double Vector[3]; > ... > class MyClass > { > ... > virtual int get_pos(Vector v); // <-- 'v' is an output-onlyargument > }; > > with > > %feature("director") MyClass; > > in the interface file. > > I've applied the "%typemap(directorargout) Vector" and achieved the desired > effect. However, it appears that the generated Python method continues to > require the Vector 'v' argument to the method, even though it serves no useful > purposeand is not of a known type to Python; e.g. this works properly: > > def get_pos(self, v): > return (1, (0, 0, 0)) > > However, if I attempt to leave off the 'v' argument: > > def get_pos(self): > return (1, (0, 0, 0)) > > I get an error about the method requiring 1 argument with 2 provided. Is > there a way that I can tell SWIG that the Python-based argument is irrelevant > (perhaps using some kind of %ignore directive) and that it should not attempt > to pass it to the Python code when invoking PyObject_CallMethod()? |