Как SWIG оборачивает карту <string, string> в Python?

Я использую SWIG 2.0 для создания оболочки Python для библиотеки C ++. Один метод имеет аргумент типа "const std :: map &". SWIG с радостью создает обертку для него, но я не могу понять, как вызвать метод. Если я передаю, например, {"a": "b"} для этого аргумента, я получаю ошибку "NotImplementedError: Неверное число или тип аргументов для перегруженной функции".

Я посмотрел на сгенерированный файл .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 &""'"); 
}

Он четко знает, что аргумент существует, и что он должен быть преобразован в карту. Но я не могу понять, что он на самом деле хочет, чтобы я смирился с этим.

Ответы на вопрос(1)

Ваш ответ на вопрос