【发布时间】:2017-07-18 11:11:58
【问题描述】:
理论上应该在编译时知道类型,编译器也知道维度。目前,我有一个模板函数,它将矩阵的维度作为模板参数。我可以通过估计 constexpr 中的尺寸或通过模板函数以某种方式避免这种情况吗?
struct cont {};
void ffd<3>::run(cont mat[3][3][3])
在理解中,我想避免声明rows 参数。
template<uint8_t rows>
struct ffd {
template<class T>
static float run(const T &mat) {
// recursion over the rows in mat
}
};
【问题讨论】:
-
所以你想在编译时从
T得到rows? -
我的第一个想法是这也不应该是可能的。但是类型在编译时是已知的,不是吗?
-
我可以看到 3 个模板参数的 3 个实例,除了维数也是 3。void
ffd<4>::run的参数是什么?void ffd<4>::run(float mat[4][4][4])、void ffd<4>::run(float mat[3][3][3][3])还是别的什么?目前您的问题不清楚... -
不清楚