有没有办法对动态大小的 Eigen::Matrix 中的数据执行 std::move 或道德等价物?我想将数据移出以用于我自己的 API。
最佳答案
由于您没有阐明您实际想要做什么,所以更通用的答案是:
不,如果不访问 Eigen 的内部结构,就无法将数据移出 Eigen::Matrix
(例如,如果您继承自 Eigen::Matrix
您可以访问所有内部数据)。我不会详细说明如何执行此操作,因为如果 Eigen 的内部发生变化,这可能会随时中断。
通常有两种“正确”的方式(或它们的组合)与不同的 API 进行交互:
- 使用 Eigen 对象进行数据存储,并使用
.data()
获得对内部数据的读写访问权限功能。 - 使用您自己的 API 进行数据存储,并使用
Eigen::Map
从 Eigen 端访问该数据:https://eigen.tuxfamily.org/dox/group__TutorialMapClass.html
关于c++ - std::将数据移出 Eigen::Matrix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54640359/