Недавно я наткнулся на следующую эзотерическую часть кода.
int main(){(([](){})());}
Переформатируйте его следующим образом, чтобы сделать его более читаемым:
int main(){
(([](){})()); // Um... what?!?!
}
Но я не могу понять, как (([](){})())
является допустимым кодом.
- Он не похож на синтаксис указателя функции.
- Это не может быть какой-то перегрузкой оператора. Код компилируется как есть.
Google не очень помог с этим поиском всех символов. Но он компилируется в Visual Studio 2010 и ничего не выводит. Не было никаких ошибок и никаких предупреждений. Таким образом, он выглядит как действительный код.
Я никогда не видел никакого действительного кода, столь странного вне Javascript и указателей функций C.
Может кто-нибудь объяснить, насколько это действительно С++?