1
在Windows上使用SWIG 3.0.0,出口到蟒蛇,我有以下接口文件:SWIG在課堂上忽略%mutable;如何解決?
%module example
%immutable;
class MyClass {
public:
%mutable;
char *str1;
%immutable;
char *str2;
};
我的意圖是在默認情況下使整個文件中的所有類成員不可變(只讀)但允許一些可寫 - 在這種情況下是str1。
但SWIG似乎忽略了類內部的可變指令;它從不會爲str1或str2生成任何MyClass_str1_set
方法。我已經通過了文檔,它看起來應該工作。我也試過把%mutable MyClass::str1;
放在頂層,但這也沒有幫助。我錯過了什麼?
您的第一個解決方案有效。我的問題之一是%mutable在這裏不起作用;你必須說'%feature(「immutable」,「0」)MyClass :: str1'。而且你還必須在課堂之外,頂層有這樣的課程。你的第二個解決方案可能會起作用,但是我不得不在每個班級中放置'%immutable',這會很煩人。謝謝您的幫助! – GaryO
@garyo很高興聽到,謝謝你的更新。如果你不介意,說明爲什麼沒有upvote,我可能能夠改善答案。乾杯! – Schollii
只是忘了 - 再次感謝! – GaryO