我最近遇到了下面这段深奥的代码。
int main(){(([](){})());}
重新格式化如下,使其更具可读性:
int main(){
(([](){})()); // Um... what?!?!
}
但我不明白(([](){})())是如何有效的代码。
它看起来不像函数指针语法。 这不可能是什么操作符重载的把戏。代码按原样编译。
谷歌对全符号搜索没有多大帮助。但是它在Visual Studio 2010中编译并且没有输出任何内容。没有错误,也没有警告。所以看起来是有效的代码。
除了Javascript和C函数指针之外,我从未见过任何如此奇怪的有效代码。
有人能解释一下为什么这是有效的c++吗?