Conversion Bool -> int definiert?
-
Hallo, ich habe eine Frage, ob dieses Programm
bool B = true; int i = static_cast<int>(B); cout<<i;immer "1" ausgiebt? Also ist "true" als int immer 1 oder einfach nur != 0 und es könnte jede Zahl ausgegeben werden?
-
Ja, das ist garantiert. true konvertiert immer zu 1, false zu 0.
-
Ja. Das passiert immer:
4.5/4 schrieb:
An rvalue of type bool can be converted to an rvalue of type int, with false becoming zero and true
becoming one.
-
Du brauchst im übrigen keinen
static_cast, die arithmetischen Typen sind implizit ineinander konvertierbar. Es kann aber der Übersicht dienen, Umwandlungen kennzuzeichnen.