swig文档:http://www.swig.org/Doc2.0/SWIGDocumentation.html#Typemaps_nn48
用 typemap定义数据类型转换时 它的参数类型及参数名都是固定的,只能完全匹配才行。
当出现相同参数类型,但参数名不匹配时,该定义不起作用, 如果想在不一样的参数名中起作用,需要使用apply。
example:
%typemap(in,numinputs=0) int *OUTPUT (int temp) { $1 = &temp; } %typemap(argout) int *OUTPUT { // return value somehow }
%apply int *OUTPUT { int *retvalue, int32 *output };
当运行swig时,遇到 int *retvalue, int32 *output 也会使用上边typemap的定义生成相应的代码