title: Implement matrix by c++ template
body: <p>As above,but I define matrix dimension by template parameter.When I try to implement a matrix multiplication, some trouble occurs.My matrix multiplication prototype as bellow:</p>
  
  <pre><code>matrix_array&lt;class __item__, std::size_t ROW, std::size_t COL&gt;;
  matrix_array&lt;__item__, ROW, COL&gt; operator* (
          const matrix_array&lt;__item__, COL, &gt;&amp; b) const;
  </code></pre>
  
  <p>So there is a question, how to pass the third template argument of matrix <code>b</code>?I can just to define a new template parameter, but it's so terrible.</p>