我是新來的swig。我想在Swig中創建類指針的映射。如下如何在swig中創建地圖?
class A;
class B;
namespace std {
%template(MYMap) map<A*, B*>;
}
這是行不通的。
但如果我創建映射這樣
namespace std {
%template(MYMap) map<int, int>;
}
它的工作原理。
我認爲它適用於原始內置類型。 謝謝!
我是新來的swig。我想在Swig中創建類指針的映射。如下如何在swig中創建地圖?
class A;
class B;
namespace std {
%template(MYMap) map<A*, B*>;
}
這是行不通的。
但如果我創建映射這樣
namespace std {
%template(MYMap) map<int, int>;
}
它的工作原理。
我認爲它適用於原始內置類型。 謝謝!
我會在評論中提出這個問題,因爲我沒有辦法嘗試,但是輸入太困難了。嘗試的typedef爲指針類型:
typedef A *APtr;
typedef B *BPtr;
%template(MyMap) map<APtr, BPtr>;
我試過這個但不起作用 – 2014-09-22 07:09:00
@ D'JayPatil什麼是「不能正常工作」的意思? – Gene 2014-09-22 13:59:15
代碼不編譯它給出了一些奇怪的錯誤。 – 2014-09-23 04:48:22
添加此線附近的.i文件的頂部:
%include "std_map.i"
這將創建的std ::地圖typemaps。同時確保您使用的是class B
而不是Class B
。
我已經添加了這個 – 2014-10-02 05:20:22
@DJayPatil更新了 – Schollii 2014-10-03 03:20:02
爲什麼'B類'開始於大寫'C'? – matsjoyce 2014-10-04 09:33:27