我正在使用SWIG 2.0创建一个C++库的Python包装器。其中一个方法有一个 "const std::map&" 类型的参数。SWIG愉快地为它生成了一个包装器,但我无法弄清楚如何调用这个方法。如果我传递例如{"a":"b"}作为该参数,我会收到"NotImplementedError: Wrong number or type of arguments for overloaded function" 错误。
我查看了生成的.cxx文件,希望它能澄清问题,但它没有。以下是处理该参数的代码:
我查看了生成的.cxx文件,希望它能澄清问题,但它没有。以下是处理该参数的代码:
res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_std__mapT_std__string_std__string_t, 0 | 0);
if (!SWIG_IsOK(res4)) {
SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_Context" "', argument " "4"" of type '" "std::map< std::string,std::string > const &""'");
}
它明确知道该参数存在,而且应该是一些需要转换为映射的东西。但我不知道它实际上希望我传递什么。