swig 3.0.10例子/ python / callback可以回调函数返回一个元组吗?

时间:2016-09-13 21:52:01

标签: python callback swig

这里的概念是扩展示例以使“run()”成员函数返回两个值的元组。我一直在寻找广泛而且没有发现这是可能的。该示例包含此函数,没有返回值:

virtual void run() { 
    std::cout << "Callback::run()" << std::endl; }

我能够让这个工作:

virtual long run() { 
    std::cout << "Callback::run()" << std::endl; return 23; }

我能够让这个工作:

virtual long run(long value) { 
    std::cout << "Callback::run()" << std::endl; return 23+value; }

但典型的“附加输出”功能似乎不适用于导演/回调机制:

virtual long run(long *rcP) { 
    std::cout << "Callback::run()" << std::endl; *rcP = 99 ; return 23+value; }

“example.I”中的以下SWIG指令:

%include typemaps.i
%apply long *OUTPUT { long *rcP };

通常会导致函数返回“(23 + value,99)”元组。

我还没有发现SWIG指令的组合会在回调上生成一个元组;但是在导演/回调的情况下,参数和返回值之间根本没有创建链接。

0 个答案:

没有答案