我試圖讓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->'引起的。 –