Ostatnio natknąłem się na następujący ezoteryczny fragment kodu.
int main(){(([](){})());}
Sformatuj go w następujący sposób, aby był bardziej czytelny:
int main(){
(([](){})()); // Um... what?!?!
}
Ale nie mogę się zastanowić, jak (([](){})())
ważny jest kod.
- Nie wygląda na składnię wskaźnika funkcji.
- To nie może być jakiś sposób na przeciążenie operatora. Kod kompiluje się w obecnej postaci.
Google niewiele pomogło w tym wyszukiwaniu wszystkich symboli. Ale kompiluje się w Visual Studio 2010 i nic nie wyświetla. Nie było błędów ani ostrzeżeń. Wygląda to na prawidłowy kod.
Nigdy nie widziałem żadnego ważnego kodu, który jest tak dziwaczna poza Javascript i C wskaźników funkcji .
Czy ktoś może wyjaśnić, jak to jest poprawne C ++?
Don't sweat it. We have int main(){(([](){})());} which is valid C++"
(9 listopada na czacie)