使用SWIG将基本std :: map包装到Python

时间:2018-04-23 15:10:43

标签: python swig

我很惊讶地发现以下功能不会被SWIG自动包装。当然,我一定做错了,因为这是一个非常基本的例子。

接口文件(stdmap.i):

%module stdmap;

%include "std_map.i"
%template(map_ii) std::map<int, int>;

%{
    extern std::map<int, int> test_map();
%}
extern std::map<int, int> test_map();

实施(stdmap.cpp):

#include <map>

std::map<int, int> test_map() {
    return {{1, 0}, {4, 5}};
}

当包装到Python时,我得到了

> test_map()
<stdmap.map_ii; proxy of <Swig Object of type 'std::map< int,int > *' at 0x10801dd50> >

而不是

{1: 0, 4: 5}

正如所料。我在哪里犯错?

0 个答案:

没有答案