Qual é o resultado de um & b?
Isso é estranho, mas o operador AND bit a bit é definido no padrão C ++ da seguinte maneira (ênfase minha).
As conversões aritméticas usuais são realizadas;o resultado é a função AND bit a bit de seus operandos. O operador aplica-se apenas a operandos de enumeração integrais ou sem escopo.
Isso parece meio sem sentido para mim. A "função AND bit a bit" não está definida em nenhum lugar do padrão, tanto quanto eu posso ver.
Entendo que a função AND é bem compreendida e, portanto, pode não exigir explicação. O significado da palavra "bit a bit" também deve ser bastante claro: a função é aplicada aos bits correspondentes de seus operandos. No entanto, o que constitui os bits dos operandos não é claro.
O que da?