title: C++: Overloaded template alias
body: <p>Currently programming a specialized Standard Library, and I find that in a particular case this is necessary for me:</p>
  
  <pre><code>namespace std
  {
    // key, value
    template&lt;class K, class V&gt;
    using vector_map = other_namespace::vector_map&lt;K, V&gt;;
  
    // key, value, compare
    template&lt;class K, class V, class C&gt;
    using vector_map = other_namespace::vector_map&lt;K, V, C&gt;;
  }
  </code></pre>
  
  <p>It does, however, not work. Not surprising. But what are my options to achieving this?
  I have thought about using the precprocessor, but I want to know what you guys think.</p>
  
  <p>I want to be able to selective alias template class into another namespace, if possible.</p>
  
  <p>Solution (in my case) was to add a default value instead of having several usings:</p>
  
  <pre><code>namespace std
  {
    // key, value, compare
    template&lt;class K, class V, class C = default_value&gt;
    using vector_map = other_namespace::vector_map&lt;K, V, C&gt;;
  }
  </code></pre>