#include <functional>
#include <iostream>
#include <string>
#include <tuple>
using namespace std;

template <typename... Tp, size_t begin = 0U>
enable_if_t<begin == sizeof...(Tp), void> foo(tuple<Tp...>& t){
	cout << endl;
}

template <typename... Tp, size_t begin = 0U>
enable_if_t<begin < sizeof...(Tp), void> foo(tuple<Tp...>& t) {
	cout << get<begin>(t) << ' ';
	foo<Tp..., begin + 1>(t);
}

int main() {
	tuple<int, string, float> t = make_tuple(42, "Jonathan Mee", 13.13);

	foo(t);
}