内置类型(例如 from PyLong_Type
to )的 python 转换器的 boost python 寄存器在哪里double
?
我想定义一个转换器,它可以numpy.float128
从 python 中获取一个并返回一个long double
用于 C++ 中的函数。我已经反其道而行之,即 to_python 转换器。为此我进行了调整builtin_converters.hpp
,但我没有发现 boost python 是如何进行 from python 转换的。
内置类型(例如 from PyLong_Type
to )的 python 转换器的 boost python 寄存器在哪里double
?
我想定义一个转换器,它可以numpy.float128
从 python 中获取一个并返回一个long double
用于 C++ 中的函数。我已经反其道而行之,即 to_python 转换器。为此我进行了调整builtin_converters.hpp
,但我没有发现 boost python 是如何进行 from python 转换的。
from python 转换实际上是在builtin_converters.cpp
而不是在库的标题部分中完成的。我复制了这个文件并删除了除转换器之外的所有内容long double
,然后我可以对其进行修改。
我将添加到这个答案中,尽管问题略有不同:
如何将 Python 类型对象(PyTypeObject
例如PyLong_Type
、PyBool_Type
、PyUnicode_Type
等)转换为boost::python::object
?
似乎这工作正常:
namespace bp = boost::python;
bp::object float_Type = bp::borrowed(
bp::downcast<PyTypeObject>(&PyFloat_Type))));
结果是您可以通过 Boost Python 对象向 Python 公开实际类型对象。