我有一个 C++ DLL,我正在尝试为其构建一个 SWIG 接口(interface)文件。 C++ DLL 有一些使用 >>
的重载函数和 <<
运营商。我见过使用 %rename 函数作为基本运算符(如加法)的示例,例如:
%rename (____add__) *::operator +;
我想知道 >>
是否有类似的函数名称和 <<
,或者如果这些运算符无法移植到 Python。现在我正在使用
%ignore ::operator >>;
和
%ignore ::operator <<;
摆脱 SWIG 警告,但如果可能的话,我希望能够移植这些运算符。
最佳答案
这听起来像你想做的:
%rename(__lshift__) operator<<;
和 rshift 对应的右移运算符,来自 Python 数字协议(protocol)。
(请注意,如果您将 -builtin 与 SWIG 一起使用,则需要使用 tp_slots 而不是 %rename
)。
关于python - SWIG - 映射 C++ 右移和左移运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28454820/