title: C++ comparison operators
body: <p>I frequently see people only overriding operator&lt;, not > or ==. Does it mean that by default, operator> and operator== are implemented using operator&lt; ? </p>
  
  <p>I also frequently see people writing (see <a href="https://stackoverflow.com/questions/2214295/is-it-impossible-to-use-stl-map-with-struct/2214324#2214324">here</a>)</p>
  
  <pre><code>bool operator() (Node const&amp; n1, Node const&amp; n2) const
  {
      // TODO: your condition
      return n1.a &lt; n2.a;
  }
  </code></pre>
  
  <p>What does operator() mean here then? it seems very counter-intuitive. </p>