title: How can I "map" a parameter pack
body: <p>This question is similar with <a href="https://stackoverflow.com/questions/25338795/is-there-a-name-for-this-tuple-creation-idiom">this</a>, It seems in my version I need to write my own <code>sizeof...</code></p>
  
  <p>Suppose I have a struct <code>Wrapper</code> with definition</p>
  
  <pre><code>struct Wrapper{
      string s;
  }
  </code></pre>
  
  <p>and I have a function, it accept a pack of <code>Wrapper</code> and <code>printf</code> them. Because <code>printf</code> take a pack of <code>const char *</code>, so I need to map this pack of <code>Wrapper</code> into a pack of <code>const char *</code></p>
  
  <pre><code>template&lt;typename ... Args&gt;
  void printf_wrapper(string format, Args&amp;&amp; ... args){
      printf(format.c_str(), /* #1: WHAT CAN I WRITE HERE */)
  }
  </code></pre>
  
  <p>I heard a <code>swallow</code> function may help me with that, but what does it like, and how it functions?</p>