这个奇怪的代码做了什么?

时间:2015-03-16 16:37:31

标签: c++

我在网上发现了这个奇怪的代码,但无法弄清楚它的作用。当我编译它时,我没有得到任何输出。

int main()<%auto f = <::><%%>;%>

2 个答案:

答案 0 :(得分:12)

使用有向图,<%对应{%>对应}

将这些替换为产量

int main(){ auto f = <::>{}; }

最后,<:相当于[:>],所以我们最终会

int main(){ auto f = []{}; }

其中[]{}是一个空的lambda,f是闭包对象的副本。

答案 1 :(得分:6)

它使用digraphs来混淆一些简单的代码。它与

完全相同
int main() { auto f = []{}; }

换句话说,并不多。它只是实例化一个空的lambda,将它绑定到ff甚至没有被召唤。