pybind11:通过值/引用将 numpy 数组传递给 c++

cnc*_*gvg 5 python numpy pybind11

这是我的函数签名

auto fun(py::array_t<double, py::array::c_style | py::array::forcecast> x)
Run Code Online (Sandbox Code Playgroud)

问题是,当传递 array of 时np.float64,该数组不会被复制并且可以修改fun(这不是预期的),当传递 array ofnp.float32或其他数据类型时,它会被复制。

我的问题是,有没有办法强制复制,x即使它的 dtype 是np.float64.