C++語言定義承諾如何將char轉換爲bool然後再轉回char?通過bool進行char往返投射會發生什麼?
char original = 255;
bool next = original;
char final = next;
此外,在這種情況下,大多數編譯器在語言保證之外做了什麼?
C++語言定義承諾如何將char轉換爲bool然後再轉回char?通過bool進行char往返投射會發生什麼?
char original = 255;
bool next = original;
char final = next;
此外,在這種情況下,大多數編譯器在語言保證之外做了什麼?
這將給出零或一個值,取決於原始值是零還是非零。
轉換爲bool
給出true
或false
一個值:
4.12的零值,空指針值,或空構件指針值被轉換爲
false
; 其他任何值都轉換爲true
。
轉換回char
轉換false
到零,並且true
一個:
4.7/4如果源類型是
bool
,值false
被轉換到零和 值true
被轉換到一個。
積分值轉換成bool
結果在任一true
或false
(4.12),和bool
轉換爲整數值的結果在任一1
或0
(4.5(6))。請參閱第4章(標準轉換)。
轉換爲bool零時,null轉換爲false,其他所有內容都轉換爲true。從bool轉換爲false時轉換爲零,並將true轉換爲一個。