title: Is std::equal_to guaranteed to call operator== by default?
body: <p>I had always thought that the standard required the non-specialized template for <code>std::equal_to&lt;T&gt;</code> to call <code>T::operator==</code>, but I noticed the <a href="http://en.cppreference.com/w/cpp/utility/functional/equal_to" rel="nofollow">description at cppreference.com</a> almost implies it's the other way around; certainly it doesn't mention it as a requirement. I also checked the C++11 draft standard N3337 and couldn't find any guarantees there either.</p>
  
  <p>If you create a class with an <code>operator==</code> you'd hope it would get used in all circumstances.</p>
  
  <p>I can't honestly think of a way to implement <code>std::equal_to</code> that wouldn't work this way, but am I missing something?</p>