Я пытаюсь передать аргумент ctypes в модуль C ++, предоставляемый boost.Я получаю следующую ошибку:
File "ctype_test.py", line 7, in <module>
test_mod.test_boost_func(i)
Boost.Python.ArgumentError: Python argument types in
test_mod.test_boost_func(c_double)
did not match C++ signature:
test_boost_func(double i)
Я понимаю, что тип, который я передаю, не соответствует функции C ++.Я не знаю, чего мне не хватает, чтобы сделать двойной тип в коде Python.
C ++ код для генерации модуля python boost:
#include <iostream>
#include <array>
#include <boost/python.hpp>
#include <boost/python/args.hpp>
void test_boost_func(double i) {
std::cout << i << std::endl;
}
BOOST_PYTHON_MODULE(test_mod)
{
boost::python::def("test_boost_func", &test_boost_func, (boost::python::arg("i") ));
}
код python с использованием ctypes для созданияи передать аргумент:
import ctypes
import test_mod
if __name__ == "__main__":
i = ctypes.c_double(100.0)
test_mod.test_boost_func(i)