вторник, 9 августа 2011 г.

ternary operator (?:)

Интересный факт: тернарный оператор (?:) может стоять не только в правой части выражения, но и в левой. Пример:
int a = 5; int b = 10;
(a > b ? a : b) = 100; // большему из a и b присвоим 100
cout << "a=" << a << " b=" << b << endl;

// result will be: a=5 b=100

2 комментария:

  1. c ?: много забавных вещей можно придумать, например:

    double a = 1;
    double c = (a > 0 ? sin : cos)(a);

    если a > 0, то 'с' будет равно sin(a), иначе - cos(a)

    ОтветитьУдалить
  2. Более крутой пример применения оператора ;-):
    (cond ? sin : cos)(x);

    ОтветитьУдалить