title: Can someone explain this C++ comma operator short-circuiting example?
body: <p>Can someone explain this C++ comma operator short-circuiting example?</p>
  
  <pre><code>bIsTRUE     = true, false, true;
  bIsFALSE    = (true, false), true;
  bIsAlsoTRUE = ((true, false), true);
  </code></pre>
  
  <p>Why does the second version short-circuit and return <strong>false</strong> (at least in MSVC++) and the other two versions do not but return <strong>true</strong>?</p>