title: What requirements must std::map key classes meet to be valid keys?
body: <p>I want to map objects of a given class to objects of another. The class I want to use as key, however, was not written by me and is a simple <code>struct</code> with a few values. std::map orders it's contents, and I was wondering how it does it, and if any arbitrary class can be used as a key or if there's a set of requirements (operators and what not) that need to be defined.</p>
  
  <p>If so, I could create a wrapper for the class implementing the operators map uses. I just need to know what I need to implement first, and none of the references for the class I <a href="http://en.cppreference.com/w/cpp/container/map" rel="noreferrer">found online</a> specify them.</p>