g++: 0, 1 sind _signed_ int?
-
Beim g++ scheinen 0 und 1 signed int zu sein. Kann man das auch umstellen? Welchen Grund hat das?
In der Dokumentation habe ich nichts gefunden.
-
Nach dem ISO-C++ Standard sind alle Integers (soweit mit unsigned nicht anders angegeben) signed. Da 0 und 1 integers sind, sind sie eben signed. Wennn du willt, dass sie unsigned sind, musst du (unsigned int) davor schreiben;
-
aeiou schrieb:
Nach dem ISO-C++ Standard sind alle Integers (soweit mit unsigned nicht anders angegeben) signed.
Schade.
Wennn du willt, dass sie unsigned sind, musst du (unsigned int) davor schreiben;
Im Moment steht da (besser)
static_cast<unsigned int>(0) // bzw. const unsigned int _0 = static_cast<unsigned int>(0); // ja, _0 ist in einem Namespace! _0
-
Ist eine Umwandlung signed/unsigned bei neuen Compilern nicht mehr implizit?
-
Was soll das? Welches Problem löst das, für (unsigned)0 eine Konstante zu definieren? BTW könntest du auch einfach 0u schreiben (das C-Wissen geht vor lauter C++-Geilheit manchmal verloren gell ), aber das hab ich ehrlich gesagt noch nie gebraucht.
-
cd9000 schrieb:
Ist eine Umwandlung signed/unsigned bei neuen Compilern nicht mehr implizit?
Doch, aber ich habe ein komplexes Operatorenüberladungs- und nicht-explizite-Konstruktoren-System.
Bashar schrieb:
BTW könntest du auch einfach 0u schreiben (das C-Wissen geht vor lauter C++-Geilheit manchmal verloren gell )
Platsch. Danke.