С новым компилятором C ++ современный способ будет иметь параметр std :: span или gsl :: span. Он содержит указатель и длину, из него можно легко создавать подмассивы.
В зависимости от n, это может улучшить производительность, если вы измените n на параметр шаблона. Тогда рекурсия может быть развернута без проблем, и компилятор может выполнить оптимизацию magi c.
Вы можете выполнить развертывание путем ручного конвертирования в al oop тоже.
Все это зависит от ваших целей. Должна ли функция просто работать правильно. Или это критично для производительности.