title: Why can't I compile an unordered_map with a pair as key?
body: <p>I am trying to create an <code>unordered_map</code> to map pairs with integers:</p>
  
  <pre><code>#include &lt;unordered_map&gt;
  
  using namespace std;
  using Vote = pair&lt;string, string&gt;;
  using Unordered_map = unordered_map&lt;Vote, int&gt;;
  </code></pre>
  
  <p>I have a class where I have declared an <code>Unordered_map</code> as a private member.</p>
  
  <p>However, I am getting the following error when I try to compile it:</p>
  
  <blockquote>
    <p>/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:948:38: Implicit instantiation of undefined template 'std::__1::hash, std::__1::basic_string > >'</p>
  </blockquote>
  
  <p>I am not getting this error if I use a regular map like <code>map&lt;pair&lt;string, string&gt;, int&gt;</code> instead of an <code>unordered_map</code>.</p>
  
  <p>Is it not possible to use <code>pair</code> as key in unordered maps?</p>