title: why (1 < 1 < 1) returns true in C++?
body: <p>I came across this riddle some days ago </p>
  
  <pre><code>main ()
  {
      cout &lt;&lt; (1 &lt; 1 &lt; 1  ? "true" : "false") &lt;&lt; endl;
  }
  </code></pre>
  
  <p>I can't figured out why on the earth it returns true. I was expecting false.</p>
  
  <p>Even more : </p>
  
  <pre><code>cout &lt;&lt; (2 &lt; 2 &lt; 2  ? "true" : "false") &lt;&lt; endl;    // returns true
  cout &lt;&lt; (0 &lt; 0 &lt; 0  ? "true" : "false") &lt;&lt; endl;    // returns false
  cout &lt;&lt; (-1 &lt; -1 &lt; -1  ? "true" : "false") &lt;&lt; endl; // returns false
  cout &lt;&lt; (-2 &lt; -2 &lt; -2  ? "true" : "false") &lt;&lt; endl; // returns false
  </code></pre>
  
  <p>it seems that it returns true for values strictly bigger than 0 and false otherwise.</p>
  
  <p>Anyone has a explanation for this ? thanks in advance</p>