title: Unordered Map - get value with const key
body: <p>I have an unordered map that uses a pointer to a custom object as key. 
  For some reason looking up the values with the key only works if the key is not const. </p>
  
  <p>Here is an example (with <code>std::string</code> as stand-in for the custom object):</p>
  
  <pre><code>std::unordered_map&lt;std::string*, int&gt; my_map;
  
  std::string key {"test"};
  const std::string const_key {"test2"};
  
  auto value = my_map.at(&amp;key);  // this works as expected
  auto other_value = my_map.at(&amp;const_key);  // this doesn't compile
  
  
  error: invalid conversion from 'const string* {aka const std::__cxx11::basic_string&lt;char&gt;*}' 
  to 'std::unordered_map&lt;std::__cxx11::basic_string&lt;char&gt;*, int&gt;::key_type 
  {aka std::__cxx11::basic_string&lt;char&gt;*}' [-fpermissive]
  </code></pre>
  
  <p>Why would a lookup require the pointer to be non const?</p>