我有一个包含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
。
答案 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
部分