Die requires Klausel ist echt toll!
#include <array> #include <iostream> template<typename ...Ts> requires (sizeof...(Ts) > 0) void f(Ts...) { std::cout << "not empty\n"; } template<typename ...Ts> requires (sizeof...(Ts) == 0) void f(Ts...) { std::cout << "empty\n"; } int main() { f('a', 1); // Ts... expands to void f(char, int) f(0.1); // Ts... expands to void f(double) f(); // Ts... expands to void f() }