#include <tuple>
#include <iostream>
template<class ...Ts>
std::tuple<Ts&...> multi_ret(Ts&... Vs) {
return std::tuple<Ts&...>(Vs...);
}
//{r, theta} = cart2pol(x,y)
std::tuple<int, char> cart2pol(int x, char y) {
return std::tuple<int, char>(x, y);
}
int main() {
int x = 4;
char y = '4';
int r = 0;
char theta = 0;
multi_ret(r, theta) = cart2pol(x, y);
std::cout << r << ' ' << theta << '\n';
return 0;
}
I2luY2x1ZGUgPHR1cGxlPgojaW5jbHVkZSA8aW9zdHJlYW0+Cgp0ZW1wbGF0ZTxjbGFzcyAuLi5Ucz4Kc3RkOjp0dXBsZTxUcyYuLi4+IG11bHRpX3JldChUcyYuLi4gVnMpIHsKICAgIHJldHVybiBzdGQ6OnR1cGxlPFRzJi4uLj4oVnMuLi4pOwp9CgovL3tyLCB0aGV0YX0gPSBjYXJ0MnBvbCh4LHkpCnN0ZDo6dHVwbGU8aW50LCBjaGFyPiBjYXJ0MnBvbChpbnQgeCwgY2hhciB5KSB7CiAgICByZXR1cm4gc3RkOjp0dXBsZTxpbnQsIGNoYXI+KHgsIHkpOwp9CgppbnQgbWFpbigpIHsKICAgIGludCB4ID0gNDsKICAgIGNoYXIgeSA9ICc0JzsKICAgIGludCByID0gMDsKICAgIGNoYXIgdGhldGEgPSAwOwogICAgbXVsdGlfcmV0KHIsIHRoZXRhKSA9IGNhcnQycG9sKHgsIHkpOwogICAgc3RkOjpjb3V0IDw8IHIgPDwgJyAnIDw8IHRoZXRhIDw8ICdcbic7CiAgICByZXR1cm4gMDsKfQ==