我有一个C ++ DLL,我正在尝试构建一个SWIG接口文件。 C ++ DLL有一些使用>>
和<<
运算符的重载函数。我已经看到了将%rename函数用于基本运算符(如add)的示例,例如:
%rename (____add__) *::operator +;
我想知道>>
和<<
是否有类似的函数名称,或者这些运算符是否无法移植到Python。现在我正在使用
%ignore ::operator >>;
和
%ignore ::operator <<;
摆脱SWIG警告,但我希望能够在可能的情况下移植这些操作员。
答案 0 :(得分:1)
听起来你想要这样做:
%rename(__lshift__) operator<<;
和rshift用于相应的右移位运算符,来自Python数字协议。
(请注意,如果您使用-builtin和SWIG,则需要使用tp_slots而不是%rename
)。