Результаты поиска
Использование побитовых операторов для булевых чисел в C++
Есть ли какая-либо причина не использовать побитовые операторы &, |, и ^ для значений "bool" в C++?
Я иногда сталкиваюсь с ситуациями, когда я хочу, чтобы одно из двух условий было истинным (XOR), поэтому я просто бросаю оператор ^ в условное выражение. Я также иногда хочу, чтобы все части условия были оценены, является ли результат истинным или нет (вместо короткого замыкания), поэтому я использую & и |. Мне также иногда нужно накапливать логические значения, и &= и |= могут быть весьма полезны.
Я получил несколько поднятых бровей, когда делал это, но код все еще значим и чище, чем это было бы в противном случае. Есть ли какая-то причина NOT использовать их для bools? Есть ли современные компиляторы, которые дают плохие результаты для этого?