我在网上发现了这个奇怪的代码,但无法弄清楚它的作用。当我编译它时,我没有得到任何输出。
int main()<%auto f = <::><%%>;%>
答案 0 :(得分:12)
使用有向图,<%
对应{
,%>
对应}
。
将这些替换为产量
int main(){ auto f = <::>{}; }
最后,<:
相当于[
和:>
到]
,所以我们最终会
int main(){ auto f = []{}; }
其中[]{}
是一个空的lambda,f
是闭包对象的副本。
答案 1 :(得分:6)
它使用digraphs来混淆一些简单的代码。它与
完全相同int main() { auto f = []{}; }
换句话说,并不多。它只是实例化一个空的lambda,将它绑定到f
。 f
甚至没有被召唤。