我是新来的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