title: Specialize base class with template template parameter
body: <p>I bang my head against the following code:</p>
  
  <pre><code>template&lt;class... Ts&gt; struct typelist{};
  
  template&lt;class S&gt; struct Fun;
  
  template&lt;template&lt;class...&gt; class S, class... Ts&gt;
  struct Fun&lt;S&lt;Ts...&gt;&gt; {
      std::tuple&lt;Ts...&gt; _fun;
  };
  
  template&lt;class S, class P&gt; struct Gun;
  
  template&lt;template&lt;class...&gt; class S, class... Ts, class P&gt;
  struct Gun&lt;S&lt;Ts...&gt;, P&gt;: Fun&lt;S&lt;Ts...&gt;&gt;{
      auto hun(){
          std::cout &lt;&lt; std::get&lt;0&gt;(_fun); // error: use of undeclared identifier '_fun'
      }
  };
  
  auto main(int /*argc*/, char* /*argv*/[])-&gt; int {
      auto gun = Gun&lt;typelist&lt;int&gt;, float&gt;{};
      gun.hun();
      return 0;
  }
  </code></pre>
  
  <p>I do not get what is going on here and why I am getting that error. There must be smth obvious I do not see...</p>