Il tipo di un'espressione condizionale ternario è il tipo comune due che entrambi gli operandi sono con ver Tible. Si può sicuramente non eseguire "risoluzione di sovraccarico dinamico", come sembra suggerire.
Poiché non esiste un tipo comune per int
e char const *
, il codice non verrà nemmeno compilato (come si è certi che si è notato durante il test).
(Si può essere felici di sapere che il condizionale ternario è usato proprio a causa di quelle semantica nella realizzazione del modello di classe std::common_type
caratteristica, insieme a decltype
.)
(Se la condizione è nota staticamente , come ad esempio sizeof(int) != 7
, quindi è possibile utilizzare template spe cia lization di scrivere codice simile aspetto che fa eseguire la risoluzione di sovraccarico condizionale, ma naturalmente in modo statico.)
fonte
2012-10-24 13:23:54
questo è interessante ... – mauris
Hai provato la compilazione e l'esecuzione per vedere che cosa succede? –
Questo non viene nemmeno compilato. Il compilatore si lamenterà dei diversi tipi dell'operatore ternario. –