title: Partial specialization of template template parameters, with varying number of parameters
body: <p>If the title doesn't make sense, here's the gist of the problem:</p>
  
  <pre><code>template &lt;template &lt;class&gt; class ContainerOf&gt;
  class Foo;
  
  template &lt;&gt;
  class Foo&lt;boost::optional&gt; // works!
  {
      // ...
  };
  
  // ERROR! std::vector takes two parameters
  // T and Alloc.
  template &lt;&gt;
  class Foo&lt;std::vector&gt; 
  {
      // ...
  };
  </code></pre>
  
  <p>In essense I want to specialize for various templates, that take a single type parameter. However, many templates in STL and elsewhere have other parameters such as Allocators, and Compare operations (e.g. std::map). I don't care about those. I want to specialize for a std::vector with a "hole" where T is.</p>
  
  <p>Thoughts? I feel like I need some kind of wrapper objects, or some sort of indirection to achieve this - it would also probably change the way the user instantiates these templates.</p>