В С++ существует ли разница между выполнением && (логический) и & (побитно) между bool (s)?
bool val1 = foo();
bool val2 = bar();
bool case1 = val1 & val2;
bool case2 = val1 && val2;
Являются ли case1 и case2 идентичными, или если нет, как они отличаются друг от друга и почему вы выбираете один из них? Является побитовым и bools портативным?