title: Two template template parameters and one requires the other
body: <p>This is very difficult to describe. I have a class (<code>Duo</code>) with two template template parameters. One of the classes is the parameter to the other, but it's still not fully-defined yet, until we're inside <code>Holder</code>, where I then instantiate <code>Solid</code> with a template parameter only <code>Holder</code> knows.</p>
  <pre><code>template&lt;class T&gt;
  struct Solid
  {
      T _t;
  };
  
  template&lt;template&lt;typename&gt; class SE&gt;
  struct Holder
  {
      SE&lt;int&gt; _se;
  };
  
  template&lt;template&lt;typename&gt; class HOLD,
           template&lt;typename&gt; class S&gt;
  struct Duo 
  {
      HOLD&lt;S&gt; _mem;
  };
  
  
  int main()
  {
      Duo&lt;Holder, Solid&gt; a;
      return 0;
  }
  </code></pre>
  <p>However, I get this compiler error:</p>
  <pre><code>   29 |     HOLD&lt;S&gt; _mem;
        |              ^
  main.cpp:29:14: note:   expected a type, got ‘S’
  </code></pre>
  <p>Is there a way of achieving this?</p>