Questa è una domanda a due gambe: una per C e una per C++.Operatore ternario senza secondo operando
Che standard C++ C e hanno da dire sulla seguente uso del l'operatore ternario (?:
):
const char* opt = /* possible NULL pointer */;
const char* str = opt ?: "";
Quando è diventato legale? È un'estensione del compilatore? Quali sono i requisiti per il primo operando (implicitamente convertibile in bool
/int
)?
Grazie. E qual è il requisito del suo primo operando? – YSC
@ YSC: i valori di condizione e verità sono coalizzati: 'opt?:" "' Equivale a 'opt? opt: "" '. –
TartanLlama ha già dato questa risposta. – 101010