我试图让SWIG到%ignore
象征码MyNamespace::SubNamespace::MyClass::operator->()
。我试过一百万个不同的组合%ignore
:调试SWIG%忽略
%ignore operator->;
%ignore operator ->;
%ignore operator ->();
%ignore *::operator->;
%ignore MyNamespace::SubNamespace::MyClass::operator->;
地狱甚至%ignore MyNamespace::SubNamespace::MyClass;
似乎并没有做任何事情。在任何情况下我得到这个错误:
...MyFile.hpp:267: Warning 508: Declaration of 'operator <' shadows declaration accessible via operator->(),
...MyFile.hpp:192: Warning 508: previous declaration of 'operator <'.
它由this SWIG code造成的,这似乎是是与智能指针。然而它看起来像%ignore
代码operator->()
应该删除警告。在任何情况下,都应该忽略整个班级。
所以我的问题是,有没有什么办法可以调试%ignore
。据我所见,它看起来像你不得不继续尝试组合,直到它的工作。有没有办法打印出SWIG的符号列表?代码看起来不像它有任何日志记录工具。
我有类似的情况,并使用%ignore MyNamespace :: SubNamespace :: MyClass :: operator->;确实有助于摆脱.__ deref __()代。你的问题更可能是由'operator <'而不是'operator->'引起的。 –