title: Ambiguous call to Overloaded Function (const variety)
body: <p>How do I fix this error?</p>
  
  <blockquote>
    <p>error C2668: 'std::_Tree&lt;_Traits>::end' : ambiguous call to overloaded function</p>
  </blockquote>
  
  <p>My code looks like this:</p>
  
  <pre><code>typedef map&lt;int const *, float&gt; my_map_t;
  my_map_t _test;
  my_map_t::const_iterator not_found = my_map_t::end();
  if (_test.find(&amp;iKeyValue) == not_found) {
      _test[iKeyValue] = 4 + 5; // not the actual code, but here for simplicity
  }
  </code></pre>
  
  <p>The compiler complains that there's an ambiguous call to my_map_t::end(). This makes sense, because the only difference is the return type. </p>
  
  <p>Normally you can disambiguate the call by casting the parameters, but end() has no parameters. Any ideas?</p>