title: Transform the std::tuple types to another ones
body: <p>Let's say ı have a type traits to transform one type to another one</p>
  <pre><code>template&lt;typename ...&gt; struct Transforming;
  template&lt;typename T&gt; struct Transforming&lt;T&gt; { using type = T; };
  template&lt;&gt; struct Transforming&lt;char&gt; { using type = int; };
  template&lt;&gt; struct Transforming&lt;long&gt; { using type = int; };
  template&lt;&gt; struct Transforming&lt;double&gt; { using type = float; };
  </code></pre>
  <p>So what ı wanted is, ı want to transform the tuple types to another one via the above type traits. ı know ı should variadic templates but ı could not make the algorithm. At the end, ı should have something like this.</p>
  <pre><code>using TUPLE = tuple&lt;int, float,char, short, double, double&gt;;
  using transformed_tuple = transform_types_t&lt;Transforming&lt;&gt;, TUPLE&gt;;
  transformed_tuple --&gt; tuple&lt;int, float, int, int, float, float&gt;
  </code></pre>