2014-09-19 30 views
0

我是新來的swig。我想在Swig中創建類指針的映射。如下如何在swig中創建地圖?

class A; 
class B; 

namespace std { 
%template(MYMap) map<A*, B*>; 
} 

這是行不通的。

但如果我創建映射這樣

namespace std { 
%template(MYMap) map<int, int>; 
} 

它的工作原理。

我認爲它適用於原始內置類型。 謝謝!

+0

爲什麼'B類'開始於大寫'C'? – matsjoyce 2014-10-04 09:33:27

回答

0

我會在評論中提出這個問題,因爲我沒有辦法嘗試,但是輸入太困難了。嘗試的typedef爲指針類型:

typedef A *APtr; 
typedef B *BPtr; 

%template(MyMap) map<APtr, BPtr>; 
+0

我試過這個但不起作用 – 2014-09-22 07:09:00

+0

@ D'JayPatil什麼是「不能正常工作」的意思? – Gene 2014-09-22 13:59:15

+0

代碼不編譯它給出了一些奇怪的錯誤。 – 2014-09-23 04:48:22

0

添加此線附近的.i文件的頂部:

%include "std_map.i" 

這將創建的std ::地圖typemaps。同時確保您使用的是class B而不是Class B

+0

我已經添加了這個 – 2014-10-02 05:20:22

+0

@DJayPatil更新了 – Schollii 2014-10-03 03:20:02