我有一个现有的pybind11::array_t
,并且需要进行复制构造。 pybind11
中是否有一个函数可以让我对array_t
进行深层复制?
我知道我可以创建一个新的array_t
,对其进行适当的大小调整,然后将原始数据复制到其中,但是我想知道是否已有一种方法可以隐藏这些段落。
答案 0 :(得分:0)
默认副本构造函数执行深层复制people are actually trying to avoid this:)
要使用复制构造函数,可以通过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