Tipo de retorno de '?:' (Operador condicional ternário)
Por que o primeiro retorna uma referência?
int x = 1;
int y = 2;
(x > y ? x : y) = 100;
Enquanto o segundo não?
int x = 1;
long y = 2;
(x > y ? x : y) = 100;
Na verdade, o segundo não foi compilado - "não lvalue restante da atribuição"