passing a parameter pack over a legacy function signature using forward_as_tuple
<p>In my app I would like to pass in a parameter pack over a legacy function signature, and change the values. Here is code that illustrates my question with my attempts as comments:</p>

<pre><code>#include &lt;tuple&gt;
#include &lt;cassert&gt;

void LegacySignature( void* param );

template&lt; typename... ArgsT &gt;
// using ???; // attempt: can 'template alias' or 'using declaration' make the pack's type visible so I can use it inside the LegacyFunction?
void MyFunc( ArgsT&amp;... args )
{
  auto userArgsTuple = std::forward_as_tuple&lt; ArgsT&amp;... &gt;( args... );

  LegacySignature( &amp;userArgsTuple );
}

void LegacySignature( void* param )
{
//  auto userArgsTuple = reinterpret_cast&lt;???&gt;( param ); // attempt: how can I get the parameter pack's type declared so I can use it here?

  // do something with the params like change num to 44 and tf to true;
  //userArgsTuple-&gt;num = 44; // desired functionality
  //userArgsTuple-&gt;tf = true; // desired functionality
}

int main()
{
  int num { 33 };
  bool tf { false };
  MyFunc( num, tf );
  assert( num == 44 &amp;&amp; tf == true );

  return 0;
}
</code></pre>

<p>Is there a way to make the parameter pack a declarable lvalue?</p>