[c++] Restituisce il tipo di '?:' (Operatore condizionale ternario)



Answers

Il tipo di ternario ?: Espressione è il tipo comune del suo secondo e terzo argomento. Se entrambi i tipi sono uguali, si ottiene un riferimento. Se sono convertibili l'uno con l'altro, uno viene scelto e l'altro viene convertito (promosso in questo caso). Poiché non è possibile restituire un riferimento lvalue a un valore temporaneo (la variabile convertita / promossa), il suo tipo è un tipo di valore.

Question

Perché il primo restituisce un riferimento?

int x = 1;
int y = 2;
(x > y ? x : y) = 100;

Mentre il secondo no?

int x = 1;
long y = 2;
(x > y ? x : y) = 100;

In realtà, il secondo non è stato compilato affatto - "non è rimasto il valore di assegnazione".




Related