Сочетание boost и ctypes - PullRequest
       7

Сочетание boost и ctypes

0 голосов
/ 21 ноября 2018

Я пытаюсь передать аргумент 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)
...