template struct tuple {}; template struct tuple : tuple { tuple(T t, Ts... ts) : tuple(ts...), tail(t) {} T tail; };