Is there any difference between && and & with bool(s)?

Viewed 41888

In C++, is there any difference between doing && (logical) and & (bitwise) between bool(s)?

bool val1 = foo();
bool val2 = bar();

bool case1 = val1 & val2;
bool case2 = val1 && val2;

Are case1 and case2 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?

7 Answers
Related