1

SWIG 文档展示了如何重载运算符。他们的例子是一个复杂的类,他们展示了如何重载operator+。他们还有一个关于混合双重和复杂的例子。但是,给出的示例虽然定义了 Complex operator+(double, const Complex &),但仅适用于 complex+double。举个例子:

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 在右侧时可以工作的代码?

4

0 回答 0