#include <iostream>
#include <string>
#include <tuple>
struct blau_t
{
std::string str_;
explicit blau_t(std::string str) : str_(str) {}
};
void f(int i, int j) { std::cout << "f(" << i << "," << j <<")\n"; }
void g(int i, double j) { std::cout << "g(" << i << "," << j <<")\n"; }
void h (blau_t blau) { std::cout << "h -> " << blau.str_ << "\n";}
int main()
{
auto fun_array = std::make_tuple(f,g,h);
std::get<0> (fun_array) (1,2);
std::get<1> (fun_array) (1,2.5);
std::get<2> (fun_array) (blau_t("Hallo"));
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dHVwbGU+CgpzdHJ1Y3QgYmxhdV90IAp7CiAgICBzdGQ6OnN0cmluZyBzdHJfOwogICAgCiAgICBleHBsaWNpdCBibGF1X3Qoc3RkOjpzdHJpbmcgc3RyKSA6IHN0cl8oc3RyKSB7fQp9OwoKdm9pZCBmKGludCBpLCBpbnQgaikgeyBzdGQ6OmNvdXQgPDwgImYoIiA8PCBpIDw8ICIsIiA8PCBqICA8PCIpXG4iOyB9CnZvaWQgZyhpbnQgaSwgZG91YmxlIGopIHsgc3RkOjpjb3V0IDw8ICJnKCIgPDwgaSA8PCAiLCIgPDwgaiAgPDwiKVxuIjsgfQp2b2lkIGggKGJsYXVfdCBibGF1KSB7IHN0ZDo6Y291dCA8PCAiaCAtPiAiIDw8IGJsYXUuc3RyXyA8PCAiXG4iO30KCmludCBtYWluKCkgCnsKICAgIGF1dG8gZnVuX2FycmF5ID0gc3RkOjptYWtlX3R1cGxlKGYsZyxoKTsKICAgIAogICAgc3RkOjpnZXQ8MD4gKGZ1bl9hcnJheSkgKDEsMik7CiAgICBzdGQ6OmdldDwxPiAoZnVuX2FycmF5KSAoMSwyLjUpOwogICAgc3RkOjpnZXQ8Mj4gKGZ1bl9hcnJheSkgKGJsYXVfdCgiSGFsbG8iKSk7CiAgICAKICAgIHJldHVybiAwOwp9