É possível invocar um método com todas as combinações possíveis de K (com repetição) de argumentos passados em uma tupla?
O comportamento desejado pode ser ilustrado da seguinte maneira:
void foo(int x, int y) {
std::cout << x << " " << y << std::endl;
}
int main() {
all_combinations<2>(foo, std::make_tuple(1, 2)); // K = 2
// to run:
// foo(1, 1)
// foo(1, 2)
// foo(2, 1)
// foo(2, 2)
}