Ho trovato macro sconosciute in un'implementazione del driver che non riesco a spiegare a me stesso. esempio semplificato è:perché funziona: ultima istruzione C++ come risultato dell'espressione
cout << ({int i=0; while(i<10) {++i;} i;}) << endl;
Sarà uscita 10.
Ma perché questo non diventi un espressione rvalue a tutti? Sembra funzionare in C e in C++.
Qualcuno può spiegarmi? Puntare alle parole chiave e fare riferimento sarà fantastico.
Mettere 'int i = 0; while (i <10) {++ i;} i; 'all'interno di un blocco circondato da'() 'fa printf per trattarlo come una funzione. A e legge l'ultimo io e lo stampa. – Michi
Questo non può funzionare in C. C non supporta gli operatori '<<' sovraccarichi. – fuz
@FUZxxl [Cosa ti fa dire che] (http://ideone.com/jLUk7j)? – Michi