title: C++: Forwarding the sum of parameter pack and a std::tuple/array
body: <p>I want to implement something like the following member function (method), which is supposed to <em>increase</em> each argument by some summand (addend) corresponding to the argument <em>index</em> and forward it to another variadic-template function:</p>
  
  <pre><code>template&lt;typename... Int&gt; // a bunch of integral types (e.g. int, size_t, char)
  void ForwardToFuncIncreased(Int... ints) {
     static_assert(sizeof...(Ints) == std::tuple_size&lt;decltype(summands_)&gt;::value,
                   "Incorrect number of integral types provided");
  
     Func( (ints + std::get&lt;PARAM_INDEX(ints)&gt;(summands_))... ); // failed attempt
  }
  </code></pre>
  
  <p>where <code>summands_</code> is a member variable of type <code>std::tuple</code> or <code>std::array</code> (you can assume either). The basic requirement is that it should have no runtime overhead compared to:</p>
  
  <pre><code>Func(int0 + std::get&lt;0&gt;(summands_), int1 + std::get&lt;1&gt;(summands_), ...);
  </code></pre>
  
  <p>(Imagine I overload the function for up to <code>N</code> template parameters).</p>
  
  <p>If it is not possible to do it without <em>necessary</em> runtime overhead, I am willing to go with certain modifications (esp. in the way of storing additional stuff in my class or modifying the type).</p>
  
  <p>Note: My intention is not to extract the template argument indexes, but hopefully to achieve what I need without it.</p>