非型の可変個引数テンプレートを使用するブログ投稿を見ました(現在、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;
}