Нетипичные шаблоны переменных функций в C ++ 11

я увиделСообщение блога который использовал нетипичные шаблоны с переменным числом аргументов (в настоящее время не поддерживается gcc, только clang).

template <class T, size_t... Dimensions>
struct MultiDimArray { /* ... */ };

Пример в посте компилируется нормально, но мне не удалось заставить его работать с шаблонами функций.

Кто-нибудь может помочь выяснить правильный синтаксис (если таковой существует)?

int max(int n) { return n; } // end condition

template <int... N> // replacing int... with typename... works
int max(int n, N... rest) // !! error: unknown type name 'N'
{
    int tmp = max(rest...);
    return n < tmp? tmp : n;
}

#include <iostream>
int main() 
{
   std::cout << max(3, 1, 4, 2, 5, 0) << std::endl;   
}

Ответы на вопрос(5)

Ваш ответ на вопрос