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()
}