Ich habe mir C ++ - Code angesehen und das folgende Konstrukt gefunden:
if('A' == 0x41) {
// ...
} else if('A' == 0xc1) {
// ...
} else {
// ...
}
Ich erhalte eine Visual Studio- Warnung mit folgenden Worten:
Warnung Der bedingte Ausdruck C4127 ist konstant.
Visual Studio hat eindeutig Recht - sicherlich ist 'A' als 0x41 definiert. Warum schreibt der Autor diesen Code, da zwei der drei Zweige toter Code sind?
#define IS_CHSET_EBCDIC ('A' == 0xc1)
usw.; oder machen Sie es in modernem C ++ zu einem constexpr
.