Python 如何在swig中创建地图?

Python 如何在swig中创建地图?,python,c++,swig,Python,C++,Swig,我是游泳新手。我想在Swig中创建类指针的映射。如下 class A; class B; namespace std { %template(MYMap) map<A*, B*>; } A类; 乙级;; 名称空间标准{ %模板(MYMap)图; } 这是行不通的 但如果我创建这样的地图 namespace std { %template(MYMap) map<int, int>; } 名称空间std{ %模板(MYMap)图; } 它起作用了 我认为它适用于基本

我是游泳新手。我想在Swig中创建类指针的映射。如下

class A;
class B;

namespace std {
%template(MYMap) map<A*, B*>;
}
A类;
乙级;;
名称空间标准{
%模板(MYMap)图;
}
这是行不通的

但如果我创建这样的地图

namespace std {
%template(MYMap) map<int, int>;
}
名称空间std{
%模板(MYMap)图;
}
它起作用了

我认为它适用于基本的内置类型。
谢谢大家!

我会把它放在评论中,因为我没有办法尝试,但在那里打字太难了。请为指针类型尝试typedefs:

typedef A *APtr;
typedef B *BPtr;

%template(MyMap) map<APtr, BPtr>;
typedef A*APtr;
类型定义B*BPtr;
%模板(MyMap)图;

在.i文件顶部附近添加这一行:

%include "std_map.i"

这将为std::map创建类型映射。还要确保您使用的是
B类
而不是
B类

代码未编译,它给出了一些奇怪的错误。它给出了此错误“type_name”:不是“swig::traitsWhy do
B类的成员以大写字母开头
C