理論上,編譯時應該知道類型,編譯器也知道維數。目前,我有一個模板函數,它將矩陣的維度作爲模板參數。我可以通過估算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'在編譯時? –
我的第一個想法也是不應該的。但類型在編譯時已知,不是嗎? – dgrat
我可以看到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])'or still something else ?目前你的問題是*不清楚* ... –