Puis-je supposer (bool)true == (int)1
pour n'importe quel compilateur C ++?
bool t = true; int n = 1; if (t == n) {...} ;
(int) true
est 1
une valeur entière, mais quelque chose comme if (pointer)
passe par la partie then if pointer != 0
. La seule chose que vous pouvez supposer comme vraie est que false == 0
, et true != 0
(et true
s'évalue 1
lors du casting int
)