Очень похоже на этот пост
Как я могу объявить массив шаблонов как параметр в шаблонной функции?
Примерно такой код:
template <unsigned i> void my_func (char (&a)[i]); //yes, I do need that reference
Просто объявите дополнительный параметр шаблона, который содержит данный тип.
template <typename T, unsigned i> void my_func (T (&a)[i]);