我有一个C ++函数,它将一个std :: string作为参数,一个python对象作为缓冲区。我认为我可以直接传递缓冲区,并且Boost Python会自动将其转换为字符串,但它不会:
Boost.Python.ArgumentError: Python argument types in
mod.decrypt(buffer)
did not match C++ signature:
decrypt(std::string string_to_decrypt)
是否有必要为此编写转换器?我以为它会隐式转换。谢谢你的任何建议。
答案 0 :(得分:1)
错误消息说明了一切 - 您的签名是一个字符串,但您传递的是缓冲区。
它不会反省对象来确定如何转换它 - 缓冲区可以是任何东西。
你需要转换它。