留着胡须的表情是什么:“ <:] {%>”?


300

我遇到了以下程序,该程序编译时不会出现错误甚至警告:

int main(){
  <:]{%>; // smile!
}

现场示例。

该程序做什么,那笑脸是什么?


44
我按照这些原则向编程班提供了一些奖励。我知道我是邪恶的。在Google上非常难搜索。
克里斯

57
亲切的割礼;我听说他们起诉您说“不可谷歌”。
2013年

3
@matt他们起诉sweeden:bbc.com/news/magazine-21956743
爱德华

2
您可以考虑更改接受的答案吗?
nhahtdh 2014年

4
@Mysticial:有趣的答案很有趣,但归根结底,它并没有真正帮助读者。
nhahtdh 2014年

Answers:



354

该程序使用有向图表示以下内容:

[] {};

这是一个不执行任何操作的lambda表达式。相应的符号具有以下等效项:

<: = [
%> = }

尽管今天通常不需要二字图,但是当键盘缺少使用C ++基本源字符集(即图形化的字符集)所需的某些键时,有向图很有用。组成有向图的字符组合被作为单个标记处理。这又弥补了任何配备不足的键盘或其他此类硬件或软件。



61
int main(){
  <:]{%>; // smile!
}

它基本上是使用有向图(有向图和三向图都在C ++上运行)的Lambda表达式(Lambda表达式是C ++ 11功能之一):

[] {};

仅使用有向图:

<:]<%}; 

<:]<%%>;

[:>{%>; // like my cubic hat?

[:><%};

[:><%%>;

将它们与Trigraphs混合:

<:??)<%??>; // popeye

??(:>{??>; // pirate
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.