#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <iomanip>
using namespace std;
struct Foo {
int x, y;
template<typename T1, typename T2>
operator std::tuple<T1, T2>() {
return std::tuple<T1, T2>(x, y);
}
};
int main()
{
Foo foo;
foo.x = 3; foo.y = 4;
int a, b;
std::tie(a, b) = foo;
cout << a << ", " << b << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8aW9tYW5pcD4KCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IEZvbyB7CglpbnQgeCwgeTsKCQoJdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgoJb3BlcmF0b3Igc3RkOjp0dXBsZTxUMSwgVDI+KCkgewoJCXJldHVybiBzdGQ6OnR1cGxlPFQxLCBUMj4oeCwgeSk7Cgl9Cn07CgppbnQgbWFpbigpCnsKCUZvbyBmb287Cglmb28ueCA9IDM7IGZvby55ID0gNDsKCWludCBhLCBiOwoJc3RkOjp0aWUoYSwgYikgPSBmb287CgoJY291dCA8PCBhIDw8ICIsICIgPDwgYiA8PCBlbmRsOwoKCXJldHVybiAwOwp9Cg==