我偶然发现了下面这个程序,它编译时没有错误,甚至没有警告:
int main(){
<:]{%>; // smile!
}
生活的例子。
这个程序做什么,那个微笑的表情是什么?
我偶然发现了下面这个程序,它编译时没有错误,甚至没有警告:
int main(){
<:]{%>; // smile!
}
生活的例子。
这个程序做什么,那个微笑的表情是什么?
该程序使用有向图来表示以下内容:
[] {};
这是一个不做任何事情的lambda表达式。相应的符号有以下等价物:
<: = [
%> = }
虽然现在通常不需要有向图,但是当你的键盘缺少使用c++基本源字符集(即图形字符集)所必需的某些键时,有向图是有用的。组成有向图的字符组合作为单个标记处理。这反过来弥补了任何配备不足的键盘或其他此类硬件或软件。
该程序使用有向图,它允许c++在键盘(或文本编码)上编程,这些键盘可能没有c++通常使用的字符。
代码解析为:
int main(){
[]{}; // smile!
}
int main () { <:] {% >;/ /微笑! }
它基本上是一个Lambda表达式(Lambda表达式是c++ 11特性之一),使用有向图(有向图和三向图都适用于c++):
[] {};
只使用有向图:
<:]<%};
<:]<%%>;
[:>{%>; // like my cubic hat?
[:><%};
[:><%%>;
将它们与三字母组合在一起:
<:??)<%??>; // popeye
??(:>{??>; // pirate