这个奇怪的代码有什么作用

What does this strange code do?

本文关键字:什么 作用 代码      更新时间:2023-10-16

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

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

使用二合字母,<%对应于{%>对应于}

将这些替换为产量

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

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

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

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

它使用二合字母来混淆一些简单的代码。它与

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

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