SWIG - 映射C ++右移和左移操作符

时间:2015-02-11 12:49:11

标签: python c++ swig

我有一个C ++ DLL,我正在尝试构建一个SWIG接口文件。 C ++ DLL有一些使用>><<运算符的重载函数。我已经看到了将%rename函数用于基本运算符(如add)的示例,例如:

%rename (____add__) *::operator +;

我想知道>><<是否有类似的函数名称,或者这些运算符是否无法移植到Python。现在我正在使用

%ignore ::operator >>;

%ignore ::operator <<;

摆脱SWIG警告,但我希望能够在可能的情况下移植这些操作员。

1 个答案:

答案 0 :(得分:1)

听起来你想要这样做:

%rename(__lshift__) operator<<;

和rshift用于相应的右移位运算符,来自Python数字协议。

(请注意,如果您使用-builtin和SWIG,则需要使用tp_slots而不是%rename)。