我正在尝试包装子弹库的 btVector3 类的 operator+ 函数。operator+ 没有定义为类成员,而是定义为函数。
包装 operator+= 这是一个类方法工作正常。如果我在 swig 接口文件中声明 operator+(我只能在类定义之外执行此操作),swig 不会将其识别为属于该类的运算符。
我尝试使用扩展:
%extend btVector3
{
btVector3 __add__(const btVector3& v1, const btVector3& v2) { return operator+(v1, v2); }
};
这导致 swig 为 btVector3 生成 python __add__ 方法。但是,我确实收到以下运行时错误:
AttributeError: 'module' object has no attribute 'btVector3___add__'