fnr*_*zzi 5 c++ python pybind11
我有一个现有的pybind11::array_t,需要进行复制构造。里面有没有一个函数pybind11可以让我做一个深拷贝array_t?
我知道我可以创建一个新的array_t,适当调整大小,然后将原始数据复制到其中,但想知道是否已经存在隐藏这些段落的方法来执行此操作。
默认的复制构造函数执行深层复制,人们实际上试图避免这种情况:)
要使用复制构造函数,您可以通过buffer
using py_arr = pybind11::array_t<double>;
py_arr a;
// do stuff with a, fill it and everything...
auto buffer = a.request();
py_arr b = py_arr(buffer);
std::cout << b.data() << " " << a.data() << std::endl; // this won't return the same address twice
Run Code Online (Sandbox Code Playgroud)