Каковы допустимые значения выражения (uninitialized_bool? 1: 2)? - PullRequest
1 голос
/ 10 февраля 2009

Какой набор допустимых выходов для следующих, согласно стандарту?

bool x;
cout << (x ? 1 : 2);

edit: unknown (google) получил его. В gcc мой код зависал из-за sprite.setFrame(isPressed ? 0 : 1) с условным возвратом 28!

Ответы [ 5 ]

2 голосов
/ 10 февраля 2009
2 голосов
/ 10 февраля 2009

Если x неинициализирован, это может быть как true, так и false. Таким образом, допустимыми являются 1 или 2.

1 голос
/ 10 февраля 2009

Может произойти все что угодно, включая fireTheMissiles ().

1 голос
/ 10 февраля 2009

Использование значения bool описанными способами этим стандартом как "неопределенный" такой как при изучении значения унифицированная автоматическая переменная, может заставить его вести себя как это ни то, ни другое правда или ложь.

Добро пожаловать в мир неопределенного поведения. Но сначала, почему вы хотите это сделать?

1 голос
/ 10 февраля 2009

Использование неинициализированной переменной не определено. Так что может случиться что угодно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...