Я сделал эту функцию для специального использования на 2-мерных массивах квадратичной формы: rowLength == colLength
Если вы передадите прямоугольный массив, функция потерпит неудачу, потому что реализация не подходит для прямоугольных форм: rowLength != colLength
Использование только одного шаблона гарантирует, что массив является квадратичным.Пусть компилятор предупреждает вас о прямоугольнике, потому что параметры должны быть равны, чтобы «удовлетворить» систему шаблонов.
Я знаю, что будут другие решения, но это будет именно то, что я хотел.
template <std::size_t sideLength>
void functionForQuadraticArrayOnly( const int( &arr )[ sideLength ][ sideLength ] )
{// body....}
Вопрос: правильно ли использовать этот шаблон?Это неопределенное поведение или что-то еще?