title: C++ value_type of a template parameter
body: <p>First of all, here are my examples:</p>
  
  <pre><code>SymmetricMatrix&lt;std::vector&lt;int&gt;, int&gt; a;
  SymmetrixMatrix&lt;std::list&lt;int&gt;, int&gt; b;
  SymmetricMatrix&lt;std::deque&lt;double&gt;, double&gt; c;
  
  SymmetricMatrix&lt;std::vector&lt;int&gt; &gt; d;
  SymmetricMatrix&lt;std::vector&lt;double&gt; &gt; e;
  </code></pre>
  
  <p>So there are two template parameters. If I write a default parameter for the second one, I do not have to name it when I create the object. But how can I adjust it to the first parameter? For example if the first parameter is <code>std::vector&lt;int&gt;</code>, the second one should be <code>int</code>, if the first one is <code>std::vector&lt;double&gt;</code>, the second one should be <code>double</code>. </p>