#include <functional>
#include <iostream>
#include <string>
#include <tuple>
using namespace std;
template <size_t begin = 0U, typename... Tp>
enable_if_t<begin == sizeof...(Tp), void> foo(tuple<Tp...>& t){
cout << endl;
}
template <size_t begin = 0U, typename... Tp>
enable_if_t<begin < sizeof...(Tp), void> foo(tuple<Tp...>& t) {
cout << get<begin>(t);
foo<begin + 1, Tp...>(t);
}
int main() {
tuple<int, string, float> t = make_tuple(42, "Jonathan Mee", 13.13);
foo(t);
}
I2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHR1cGxlPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGUgPHNpemVfdCBiZWdpbiA9IDBVLCB0eXBlbmFtZS4uLiBUcD4KZW5hYmxlX2lmX3Q8YmVnaW4gPT0gc2l6ZW9mLi4uKFRwKSwgdm9pZD4gZm9vKHR1cGxlPFRwLi4uPiYgdCl7Cgljb3V0IDw8IGVuZGw7Cn0KCnRlbXBsYXRlIDxzaXplX3QgYmVnaW4gPSAwVSwgdHlwZW5hbWUuLi4gVHA+CmVuYWJsZV9pZl90PGJlZ2luIDwgc2l6ZW9mLi4uKFRwKSwgdm9pZD4gZm9vKHR1cGxlPFRwLi4uPiYgdCkgewoJY291dCA8PCBnZXQ8YmVnaW4+KHQpOwoJZm9vPGJlZ2luICsgMSwgVHAuLi4+KHQpOwp9CgppbnQgbWFpbigpIHsKCXR1cGxlPGludCwgc3RyaW5nLCBmbG9hdD4gdCA9IG1ha2VfdHVwbGUoNDIsICJKb25hdGhhbiBNZWUiLCAxMy4xMyk7CgoJZm9vKHQpOwp9