1

我有一个包含 void 函数的 C++ 类,这些函数采用通过引用传递的 STL 向量并修改其中一个向量的内容。例如:

void somefunction(std::vector<double> &result, std::vector<double> &array1, std::vector<double> &array2) {some calculations}

pybind11 绑定看起来像这样:

.def("somefunction", &somefunction)

我已经包含了 'pybind11/stl.h' 头文件,它处理 STL 容器和 python 等效项之间的自动转换,在 Python 中我somefunction使用 Python 列表调用,但我不确定 C++ 层是否可以修改resultPython 列表。

然后我的问题是如何为 C++ 函数编写 Python 绑定,这些函数修改通过 reference 和 return 传递的 STL 向量的内容void

4

1 回答 1

2

包括pybind11/stl.hc++ 和 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部分

于 2018-04-23T08:14:54.223 回答