Di recente mi sono imbattuto nel seguente pezzo di codice esoterico.
int main(){(([](){})());}
Riformattalo come segue per renderlo più leggibile:
int main(){
(([](){})()); // Um... what?!?!
}
Ma non riesco a capire come (([](){})())
sia valido il codice.
- Non sembra la sintassi del puntatore a funzione.
- Non può essere un trucco da sovraccarico per l'operatore. Il codice viene compilato così com'è.
Google non ha aiutato molto con questa ricerca con tutti i simboli. Ma si compila in Visual Studio 2010 e non genera nulla. Non ci sono stati errori e nessun avviso. Quindi sembra un codice valido.
Non ho mai visto alcun codice valido che è così bizzarra al di fuori di Javascript e C puntatori a funzione .
Qualcuno può spiegare come questo è C ++ valido?
Don't sweat it. We have int main(){(([](){})());} which is valid C++"
(9 nov in chat)