Quel est l'ensemble des sorties valides pour ce qui suit, selon la norme?Quelles sont les valeurs valides de l'expression (uninitialized_bool? 1: 2)?
bool x;
cout << (x ? 1 : 2);
modifier: inconnu (google) a obtenu. En gcc mon code était en panne à cause de sprite.setFrame(isPressed ? 0 : 1)
avec le retour conditionnel 28!
C'est une mauvaise pratique d'utiliser la variable non initialisée. Toutes les variables doivent être initialisées dès qu'elles sont déclarées. – Vinay
Vous pourriez avoir essayé de confirmer vos soupçons avec un assert: bool x; assert (x == vrai || x == faux); cout << (x? 1: 2); –
Pour 'isPressed? 0: 1', GCC peut simplement faire un 'isPressed^1' en interne. Donc 'isPressed' dans votre code avait probablement le bit-pattern représentant' 29' et l'opération '^ 1' de GCC en faisait un 28. –