我有一个类似于此的C ++类:
namespace ns {
template<class T>
class Wrapper {
public:
bool operator==(const Wrapper<T>& rhs) const;
// Other methods
private:
T mData;
};
}
我想在SWIG / Python中包装它,但我不想包含相等运算符。我尝试过各种各样的事情:
%ignore ns::Wrapper::operator==;
%ignore ns::Wrapper::operator==(const ns::Wrapper&) const;
而且我也经历过T可能代表的课程(现在让我们说它是班级数据):
%ignore ns::Wrapper<Data>::operator(const ns::Wrapper<Data>&) const;
%template(WrappedData) ns::Wrapper<Data>;
%ignore WrappedData::operator==(const WrappedData&) const;
答案 0 :(得分:2)
您可以使用以下%ignore
指令之一,该指令必须在Wrapper
类的声明之前(例如,在相应的%include
指令之前):
%ignore ns::Wrapper::operator==;
%ignore ns::Wrapper<Data>::operator==;
答案 1 :(得分:1)
SWIG将自动忽略未完全定义为类的一部分的运算符。 (source)。将相等运算符重新定义为非成员函数。