El complemento de true es true, excepto cuando es false

The complement of true is true, except when it's false

El complemento de true es true, excepto cuando es false

El artículo analiza una propuesta de estándar para operaciones de bitmask en enums y descubre un comportamiento inesperado: en C++, el complemento bit a bit de true es true, no false. Esto se debe a la promoción integral y la conversión booleana. Además, GCC presenta un bug de conformidad que produce false en ciertos casos, y las operaciones bit a bit en enums sin tipo subyacente fijo pueden provocar comportamiento indefinido.

El complemento de true es true, o escrito en C++ static_cast<bool>(~true) == true.

Más de este día

2026-10-06