У меня есть класс c ++, экспортированный в python, используя
class_<std::map<std::string, std::string> >("str2str_map")
.def(map_indexing_suite< std::map<std::string, std::string> > ());
class_< MyClass, boost::noncopyable >("MyClass")
.def(init<>())
.def("process", &MyClass::process )
с сигнатурой функции,
void MyClass::process(std::map<std::string, std::string> & queryMap)
Однако, когда я пытаюсь позвонить со стороны Python, я получаю ошибку,
Boost.Python.ArgumentError: типы аргументов Python в
MyClass.process (MyClass, dict, function, int) не соответствует сигнатуре C ++:
процесс (MyClass {lvalue}, std :: map,
std :: allocator>, std :: __cxx11 :: basic_string, std :: allocator>,
станд :: меньше,
std :: allocator>>,
std :: allocator, std :: allocator> const,
станд :: __ cxx11 :: basic_string,
std :: allocator>>>> {lvalue})
Что мне нужно сделать, чтобы он работал правильно?