title: Expression contains unexpanded parameter packs
body: <p>Somehow I don't get how variadic template parameter packs are expanded. What's wrong with thie following code?</p>
  
  <pre><code>#include &lt;iostream&gt;
  
  template &lt;typename T&gt;
  struct print_one
  {
      static void run(const T&amp; t)
      {
          std::cout &lt;&lt; t &lt;&lt; ' ';
      }
  };
  
  template&lt;typename... Args&gt;
  void print_all(Args&amp;&amp;... args)
  {
      // the next line doesn't compile:
      print_one&lt;Args&gt;::run(std::forward&lt;Args&gt;(args))...;
  }
  
  int main()
  {
      print_all(1.23, "foo");
  }
  </code></pre>
  
  <p>Clang says, <code>Expression contains unexpanded parameter packs 'Args' and 'args'</code>. Why?</p>