title: Is there any difference between && and & with bool(s)?
body: <p>In C++, is there any difference between doing <code>&amp;&amp;</code> (logical) and <code>&amp;</code> (bitwise) between bool(s)?</p>
  
  <pre><code>bool val1 = foo();
  bool val2 = bar();
  
  bool case1 = val1 &amp; val2;
  bool case2 = val1 &amp;&amp; val2;
  </code></pre>
  
  <p>Are <code>case1</code> and <code>case2</code> identical or if not how exactly do they vary and why would one choose one over the other? Is a bitwise and of bools portable?</p>