Как создать массив numpy со стороны C++ и передать его python?
Я хочу, чтобы Python выполнял очистку, когда возвращаемый массив больше не используется Python.
Сторона C++ не будет использовать delete ret;
для освобождения памяти, выделенной new double[size];
.
Правильно ли следующее?
#include "pybind11/pybind11.h"
#include "pybind11/numpy.h"
namespace py = pybind11;
py::array_t<double> make_array(const py::ssize_t size) {
double* ret = new double[size];
return py::array(size, ret);
}
PYBIND11_MODULE(my_module, m) {
.def("make_array", &make_array,
py::return_value_policy::take_ownership);
}