凯凯本凯 2022-01-29 22:25 采纳率: 72.5%
浏览 10
已结题

C++如何定义以Unicode为名的宏?

需要多高的C++版本?需要什么软件支持?
(之前在其他网站上看到过用表情做宏名的整活代码,据说能运行)

  • 写回答

1条回答 默认 最新

  • _GX_ 2022-01-30 06:20
    关注

    g++ 10.2和clang++ 11.0都支持以Unicode作为标识符。

    #include <iostream>
    
    #define 🛑 '\n'
    
    using 🍴 = int;
    using 🔷 = double;
    
    struct 🏠
    {
       🍴 😏 (🍴 🍺, 🍴 🥩)
       {
          return 🍺 + 🥩;
       }
    };
    
    int main()
    {
       🏠 🏨;
       std::cout << 🏨.😏(1, 2) << 🛑;
    
       constexpr 🔷 🥧 = 3.1415927;
       🔷 r = 5;
       🔷 🔵 = 2 * 🥧 * r;
    
       std::cout << 🔵 << 🛑;
    }
    
    $ g++ --version
    g++ (Debian 10.2.1-6) 10.2.1 20210110
    Copyright (C) 2020 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    $ g++ -Wall main.cpp
    $ ./a.out
    3
    31.4159
    $ clang++ --version 
    Debian clang version 11.0.1-2
    Target: x86_64-pc-linux-gnu
    Thread model: posix
    InstalledDir: /usr/bin
    $ clang++ -Wall main.cpp
    $ ./a.out
    3
    31.4159
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月16日
  • 已采纳回答 2月8日
  • 创建了问题 1月29日

悬赏问题

  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?