Is it possible to write a function template which returns whether the number of arguments is divisible by N?
Yes, it’s as simple as template<int N, typename… Ts> constexpr bool number_of_args_divisible_by(Ts&&…) { return sizeof…(Ts) % N == 0; } Alternatively, you can return a more metaprogramming-friendly type: template<int N, typename… Ts> constexpr integral_constant<bool, sizeof…(Ts) % N == 0> number_of_args_divisible_by(Ts&&…) { return {}; }