Compilerwarnung (Ebene 4) C4800
Visual Studio 2019 und höher:
Implizite Konvertierung von 'type' in bool. Mögliche Informationsverluste
C4800 ist eine Warnung der Ebene 3 in Visual Studio 2015 und früher:
'type' : Erzwingen des Werts zu bool 'true' oder 'false' (Leistungswarnung)
Diese Warnung wird generiert, wenn ein Wert implizit in typkonvertiert bool
wird. In der Regel wird diese Meldung durch Zuweisen von int
Variablen zu bool
Variablen verursacht, bei denen die int
Variable nur Werte true
enthält, und false
kann als Typ bool
neu deklariert werden. Wenn Sie den Ausdruck nicht neu schreiben können, um den Typ bool
zu verwenden, können Sie dem Ausdruck "!=0
" hinzufügen, der den Ausdruckstyp bool
angibt. Wenn Sie den Ausdruck in den Typ bool
umwandeln, wird die Warnung nicht deaktiviert. Dies ist beabsichtigt.
Diese Warnung wird in Visual Studio 2017 nicht ausgegeben.
Diese Warnung ist standardmäßig ab Visual Studio 2019 deaktiviert. Verwenden Sie "/wn4800", um C4800 als Warnung der Ebene n oder "/Wall" zu aktivieren, um alle Standardmäßig deaktivierten Warnungen zu aktivieren. Weitere Informationen finden Sie unter Compilerwarnungen, die standardmäßig deaktiviert sind.
Beispiel
Im folgenden Beispiel wird C4800 generiert und veranschaulicht, wie sie behoben werden:
// C4800.cpp
// compile with: /W4 /w44800
int main() {
int i = 0;
// To fix, instead try:
// bool i = 0;
bool j = i; // C4800
j++;
}