我有一个包含 void 函数的 C++ 类,该类采用通过引用传递的 STL vector 并修改这些 vector 之一的内容。例如:
void somefunction(std::vector<double> &result, std::vector<double> &array1, std::vector<double> &array2) {some calculations}
pybind11 绑定(bind)如下所示:
.def("somefunction", &somefunction)
我已经包含了“pybind11/STL.h”头文件,它处理 STL 容器和 python 等效项之间的自动转换,在 Python 中我调用 somefunction
使用Python列表,但我不确定C++层是否可以修改 result
Python 列表。
我接下来的问题是如何编写Python
C++ 函数的绑定(bind),修改通过引用传递的 STL vector 的内容并返回 void
.
最佳答案
将 pybind11/STL.h
结果包含到 c++ 和 pyhton 之间的复制转换,请参阅 http://pybind11.readthedocs.io/en/stable/advanced/cast/stl.html#automatic-conversion
要通过引用传递,请参阅 http://pybind11.readthedocs.io/en/stable/advanced/cast/stl.html#making-opaque-types 部分
关于python - 使用 pybind11 包装 C++ void 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49919951/