我遇到了下面的程序,它编译时没有错误,甚至没有警告:
int main(){ <:]{%>; // smile! }
Live example.这个程序是做什么的,那个笑脸是什么?
ltskdhd11#
程序使用digraphs表示以下内容:
[] {};
这是一个什么都不做的lambda表达式。相应的符号具有这些等同物:
<: = [ %> = }
虽然现在通常不需要,但当键盘缺少使用C++基本源字符集(即图形字符集)所需的某些键时,有向图很有用。组成有向图的字符组合作为单个标记处理。这反过来弥补了任何装备不足的键盘或其他这样的硬件或软件。
ergxz8rk2#
这是一个使用有向图伪装的空lambda。正常的羔羊没有胡子。
rwqw0loc3#
该程序使用digraphs,它允许C使用键盘(或文本编码)进行编程,这些键盘可能没有C通常使用的字符。代码解析为:
int main(){ []{}; // smile! }
s1ag04yj4#
它基本上是一个使用digraphs的Lambda表达式(Lambda表达式是C++11的功能之一)(有向图和三向图都适用于C++):
仅使用有向图:
<:]<%}; <:]<%%>; [:>{%>; // like my cubic hat? [:><%}; [:><%%>;
将它们与Trigraphs混合:
<:??)<%??>; // popeye ??(:>{??>; // pirate
4条答案
按热度按时间ltskdhd11#
程序使用digraphs表示以下内容:
这是一个什么都不做的lambda表达式。相应的符号具有这些等同物:
虽然现在通常不需要,但当键盘缺少使用C++基本源字符集(即图形字符集)所需的某些键时,有向图很有用。组成有向图的字符组合作为单个标记处理。这反过来弥补了任何装备不足的键盘或其他这样的硬件或软件。
ergxz8rk2#
这是一个使用有向图伪装的空lambda。正常的羔羊没有胡子。
rwqw0loc3#
该程序使用digraphs,它允许C使用键盘(或文本编码)进行编程,这些键盘可能没有C通常使用的字符。
代码解析为:
s1ag04yj4#
它基本上是一个使用digraphs的Lambda表达式(Lambda表达式是C++11的功能之一)(有向图和三向图都适用于C++):
仅使用有向图:
将它们与Trigraphs混合: