使用pybind11包装C ++ void函数

时间:2018-04-19 11:28:07

标签: python c++ pybind11

我有一个包含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中我用Python列表调用somefunction但是我不确定C ++层是否可以修改result Python列表。

我的问题是如何编写Python C ++函数的绑定,它修改通过引用传递的STL向量的内容并返回void

1 个答案:

答案 0 :(得分:1)

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

部分