J'ai récemment rencontré le morceau de code ésotérique suivant.
int main(){(([](){})());}
Reformatez-le comme suit pour le rendre plus lisible:
int main(){
(([](){})()); // Um... what?!?!
}
Mais je ne peux pas comprendre comment (([](){})())
est un code valide.
- Il ne ressemble pas à la syntaxe du pointeur de fonction.
- Cela ne peut pas être une astuce de surcharge de l'opérateur. Le code se compile tel quel.
Google n'a pas beaucoup aidé avec cette recherche de tous les symboles. Mais il se compile dans Visual Studio 2010 et ne produit rien. Il n'y a eu aucune erreur et aucun avertissement. Cela ressemble donc à du code valide.
Je ne l' ai jamais vu un code valide qui est si bizarre à l' extérieur de Javascript et des pointeurs de fonction C .
Quelqu'un peut-il expliquer en quoi c'est un C ++ valide?
Don't sweat it. We have int main(){(([](){})());} which is valid C++"
(9 novembre dans le chat)