入れ子にすればN^2個に展開
#include <iostream> template <typename... Ts> int f(Ts... i) { int k = 0; #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-value" (... , (i, (... , (++k, i)))); #pragma GCC diagnostic pop return k; } int main() { std::cout << f(0) << std::endl; std::cout << f(0, 0) << std::endl; std::cout << f(0, 0, 0) << std::endl; std::cout << f(0, 0, 0, 0) << std::endl; std::cout << f(0, 0, 0, 0, 0) << std::endl; }
1
4
9
16
25