История изменений
Исправление NegatiV, (текущая версия) :
Стандарт C++11 глава 5.16 (в станадрте C думаю также) гарантирует, что в зависимости от значения первого выражения вычислится либо второе выражение, либо третье. В твоем примере вызов u1() гарантирует такое поведение, т.е. u1()?do1t():u2()?do2t():do2f(); раскладывается на что-то вроде:
if (u1())
do1t();
else if (u2())
do2t();
else
do2f();
Исходная версия NegatiV, :
Стандарт C++11 глава 5.16 (в станадрте C думаю также) гарантирует, что в зависимости от значения первого выражения вычислится либо второе выражение, либо третье. В твоем примере вызов u1() гарантирует такое поведение, т.е. u1()?do1t():u2()?do2t():do2f(); раскладывается на что-то вроде:
if (u1())
do1t();
else if (u2())
do2t();
else
do2f();
int a = 0, b = 0;
1? a : b = 1;