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