如何为Lua创建SWIG创建一个二进制运算符,其右侧是标量左边的参数和自定义类?

时间:2013-08-29 01:08:59

标签: lua swig

SWIG文档显示了如何重载运算符。他们的示例是Complex类,它们显示了如何重载operator +。他们也有一个例子谈论混合双和复合。然而,尽管它定义了给出的例子 Complex operator+(double, const Complex &),它仅适用于复数+双精度。 请看以下示例:

a = Complex(2,3);
b = a+3;
print(b);
b = 3+a;
print(b);

输出如下:

<Complex userdata: 7FFE30C47438>
Could not execute script file test.lua: Error in Complex::__add__ (arg 1), expected 'Complex *' got 'number'

第一行输出是第一次调用print(b)的结果。对3+a的调用失败。

如何让SWIG生成的代码在左侧是标量并且Complex位于右侧时会起作用?

0 个答案:

没有答案