title: Having trouble overriding a virtual method declared with template parameter pack expansion
body: <p>I'm having trouble overriding a virtual method of the base class specified using template parameter pack expansion - while the overriding method will exhibit the actual relevant types. Here's an MCVE:</p>
  
  <pre><code>#include &lt;iostream&gt;
  template &lt;typename... Ts&gt;
  class A { virtual void foo(Ts&amp;&amp;...); };
  
  class B : public A&lt;int, unsigned&gt; {
      void foo(int x, unsigned y) override { std::cout &lt;&lt; "here"; }
  };
  
  int main() {
      B b;
  }
  </code></pre>
  
  <p>Compiling this (with standard set to either C++11 or C++14), I get:</p>
  
  <blockquote>
  <pre><code>a.cpp:9:7: error: ‘void B::foo(int, unsigned int)’ marked override, but does not override
    void foo(int x, unsigned y) override {
         ^
  </code></pre>
  </blockquote>