只是想知道-我写了以下功能
template <class T, size_t N>
T* asFlatArray (T arr[][N])
{
// some code
}
并称它为
asFlatArray(myArray); // where myArray is int myArray[some_size][sime_size];
编译运行没有错误。但是,如果我将“arr”更改为引用
template <class T, size_t N>
T* asFlatArray (T (&arr)[][N])
{
// some code
}
我会有错误:
parameter ‘arr’ includes reference to array of unknown bound ‘T [][N]’
我知道如何解决它
template <class T, size_t Rows, size_t Columns>
T* asFlatArray (T (&arr)[Rows][Columns])
但我不明白为什么会这样?