【发布时间】:2016-10-15 23:49:54
【问题描述】:
编写采用特征矩阵/数组的函数的最佳实践在here 中有很好的记录。但我对如何对 Eigen::Tensor 对象和表达式做同样的事情很感兴趣。
更具体地说,我想编写通用模板化函数,该函数将张量对象或表达式作为参数,同时对它们进行一些操作(包括调整大小/修改)。
我尝试使用 TensorBase 作为函数参数,例如:
template<class Derived, int AccessLevel>
void myRankAgnosticFunc(Eigen::TensorBase<Derived, AccessLevel >& tensor) {
...
tensor.derived().resize(...); // Doesn't work since derived() is private
....
}
然而不同的是,Eigen::MatrixBase derived() 是受保护的,不能使用。
关于如何使用 Eigen::Tensor 对象编写通用模板函数有什么建议吗?
【问题讨论】:
标签: c++ templates eigen eigen3