title: STL container type as template parameter
body: <p>I want to create the generic class template that uses internally a specific container to determine the different types. Something like this:</p>
  
  <pre><code>#include &lt;vector&gt;
  #include &lt;list&gt;
  template&lt; typename F, template&lt; class ... &gt; class container_type = std::vector &gt;
  struct C
  {
      C();
      template&lt; typename U &gt;
      C(container_type&lt; U &gt;);
      C(container_type&lt; F &gt;);
      C(container_type&lt; int &gt;);
      container_type&lt; double &gt; param;
  };
  C&lt; unsigned, std::list &gt; c;
  </code></pre>
  
  <p>What is the most natural way to do this? Say, whether you want to mention the presence of the container's allocator in any form?</p>