Здравствуйте, _NN_, Вы писали:
_NN>А где тут вывод типа для массива ?
Если "auto нечто = выражение" выводит тип(нечто) ==> int x[N], то это несомненно является выводом типа для массива.
Самое главное в этом рецепте это использование rvalue reference. Семантически массив в C это не lvalue, и мы обязаны это явно указать.
_NN>Вместо <int, 5> уж лучше написать int x[] и компилятор сам размер вычислит.