#include <iostream>
//#include <utility>
#include <tuple>
#include <cstdlib>
#include <vector>
int
main (int argc, char *argv[])
{
typedef std::tuple<int,int> Tuple;
std::vector<Tuple> v = {
Tuple(123,321),
Tuple(999,111)
};
typedef int& (*getter_type)(std::tuple<int,int>&);
getter_type getter = std::rand() & 1 ? (getter_type)&std::get<0,int,int> : (getter_type)&std::get<1,int,int>;
for (auto& tup : v) {
std::cerr << getter(tup) << " ";
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgovLyNpbmNsdWRlIDx1dGlsaXR5PgojaW5jbHVkZSA8dHVwbGU+CiNpbmNsdWRlIDxjc3RkbGliPgojaW5jbHVkZSA8dmVjdG9yPgoKaW50Cm1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCnsKICB0eXBlZGVmIHN0ZDo6dHVwbGU8aW50LGludD4gVHVwbGU7CgogIHN0ZDo6dmVjdG9yPFR1cGxlPiB2ID0gewogICAgVHVwbGUoMTIzLDMyMSksCiAgICBUdXBsZSg5OTksMTExKQogIH07CgogIHR5cGVkZWYgaW50JiAoKmdldHRlcl90eXBlKShzdGQ6OnR1cGxlPGludCxpbnQ+Jik7CiAgZ2V0dGVyX3R5cGUgZ2V0dGVyID0gc3RkOjpyYW5kKCkgJiAxID8gKGdldHRlcl90eXBlKSZzdGQ6OmdldDwwLGludCxpbnQ+IDogKGdldHRlcl90eXBlKSZzdGQ6OmdldDwxLGludCxpbnQ+OwoKICBmb3IgKGF1dG8mIHR1cCA6IHYpIHsKICAgIHN0ZDo6Y2VyciA8PCBnZXR0ZXIodHVwKSA8PCAiICI7CiAgfQp9Cg==
prog.cpp: In function 'int main(int, char**)':
prog.cpp:20:18: error: expected initializer before ':' token
prog.cpp:23:1: error: expected primary-expression before '}' token
prog.cpp:23:1: error: expected ';' before '}' token
prog.cpp:23:1: error: expected primary-expression before '}' token
prog.cpp:23:1: error: expected ')' before '}' token
prog.cpp:23:1: error: expected primary-expression before '}' token
prog.cpp:23:1: error: expected ';' before '}' token