【问题标题】:What is this smiley-with-beard expression: "<:]{%>"?这个带胡子的笑脸表情是什么:“<:]{%>”?
【发布时间】:2013-03-22 02:30:46
【问题描述】:

我遇到了以下程序,它编译时没有错误甚至警告:

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

Live example.

程序做什么,笑脸表情是什么?

【问题讨论】:

  • 您会考虑更改接受的答案吗?
  • @nhahtdh 他不能。机器人(接受答案的作者)说他将删除他的答案。给他打勾的全部目的是防止他这样做,因为我们不想失去有价值的答案。
  • @Mysticial:有趣的答案很有趣,但归根结底,它并不能真正帮助读者。
  • @nhahtdh 答案既有趣又描述了正在发生的事情。事实上它是一个空的 lambda,并且有一个 digraph 伪装,应该足以为读者提供足够的信息。它不是手持的:下一个答案是。手握很好;但缺乏相同并不意味着如果他们不需要,OP 应该改变他们的答案。
  • 请不要这样编辑标题。它不是“长”的,它被用作表达,这是问题的一个重要点(否则它也可能在评论中使用)。

标签: c++ expression emoticons digraphs


【解决方案1】:

这是一个使用有向图伪装的空 lambda。普通的 lambda 没有胡须。

【讨论】:

    【解决方案2】:

    程序使用digraphs表示如下:

    [] {};
    

    这是一个什么都不做的 lambda 表达式。对应的符号有以下等价物:

    <: = [
    %> = }
    

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

    【讨论】:

      【解决方案3】:

      该程序正在使用digraphs,它允许使用可能没有 C++ 通常使用的字符的键盘(或文本编码)进行 C++ 编程。

      代码解析为:

      int main(){
        []{}; // smile!
      }
      

      【讨论】:

        【解决方案4】:
        int main(){
          <:]{%>; // smile!
        }
        

        它基本上是使用digraphsLambda expression(Lambda 表达式是C++11 功能之一)(二合字母和三合字母都适用于C++):

        [] {};
        

        仅使用二合字母:

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

        将它们与三字母组合:

        <:??)<%??>; // popeye
        
        ??(:>{??>; // pirate
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-03-28
          • 2014-10-16
          • 2017-11-04
          • 1970-01-01
          • 1970-01-01
          • 2011-04-23
          • 2015-06-11
          • 2021-06-30
          相关资源
          最近更新 更多