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