title: Different behaviour in different scenarios of "warning C4800: 'int' : forcing value to bool 'true' or 'false'"
body: <p>I am not able to understand the following behavior of the this warning.</p>
  
  <pre><code>case 1:
  bool read = (33 &amp; 3) ; //No Warning issued by vs 2013
  
  case 2:
  int b = 33;
  bool read = (b &amp; 3) ; //Now compiler is generating C4800 warning.  
  </code></pre>
  
  <p>Why compiler is generating warning in case 2 while it is not issuing any warning in case 1.</p>