title: C++ template partial specialization
body: <p>I cant figure out how to specialize partially this template.  compiler complains that template parameter N is not used in partial specialization</p>
  
  <pre><code>#include &lt;boost/multi_array.hpp&gt;
  
  template&lt;typename T, class A&gt;
  struct adaptable;
  
  template&lt;typename T, size_t N&gt;
  struct adaptable&lt;T,
                   // line below is the problem
                   typename boost::multi_array&lt;T,N&gt;::template array_view&lt;2&gt;::type&gt;
  {
      typedef typename boost::multi_array&lt;T,N&gt;::template array_view&lt;2&gt;::type type;
  };
  </code></pre>
  
  <p>I can add dummy template parameter just  to silence compiler.</p>
  
  <pre><code>template&lt;typename T, class A, class A0 = A&gt;
  struct adaptable;
  
  template&lt;typename T, size_t N&gt;
  struct adaptable&lt;T,
                   typename boost::multi_array&lt;T,N&gt;::template array_view&lt;2&gt;::type,
                   boost::multi_array&lt;T,N&gt; &gt;
  {
      typedef typename boost::multi_array&lt;T,N&gt;::template array_view&lt;2&gt;::type type;
  };
  </code></pre>
  
  <p>is there more straightforward way?</p>