title: Does std::hash guarantee equal hashes for "equal" floating point numbers?
body: <p>Is the floating point specialisation of <code>std::hash</code> (say, for <code>double</code>s or <code>float</code>s) reliable regarding <a href="http://en.cppreference.com/w/cpp/types/numeric_limits/epsilon#Example" rel="nofollow noreferrer"><em>almost-equality</em></a>? That is, if two values (such as <code>(1./std::sqrt(5.)/std::sqrt(5.))</code> and <code>.2</code>) should compare equal but will not do so with the <code>==</code> operator, how will <code>std::hash</code> behave?</p>
  
  <p>So, can I rely on a <code>double</code> as an <code>std::unordered_map</code> key to work as expected?</p>
  
  <hr>
  
  <p>I have seen "<a href="https://stackoverflow.com/q/7403210/430766">Hashing floating point values</a>" but that asks about boost; I'm asking about the C++11 guarantees.</p>