C++17 那些事之删除三字母

C++那些事之删除三字母

C++17 之前,Trigraph 是用 ISO/IEC 646 等小字符代码编写程序的功能,在 C89 中引入。ISO/IEC 646 缺少 C 中使用的以下字符,因此??请使用以下字符进行转义:

注:本节代码已放星球。

三字母内容替换的内容
??=#
??([
??)]
??<{
??>}
??/\
??!`
??-~
??'^

\?它被转义以防止被三字母表替换。

C++17三字母被删除,??=等不再被替换。

示例

C++17之前:

std::cout << "??=" << std::endl;
std::cout << "??(" << std::endl;
std::cout << "?\?(" << std::endl;

输出:

#
[
??(

C++17及之后:

??=
??(
??(

现在可能由于Unicode等字符编码已经普遍存在,不再需要三字母组,而gcc等编译器默认禁用三字母组。

玩转cpp小项目星球3周年了!

5aa3358edecb47362b08eac66d5ffee8.png

2ee379d2dd9697a738224856732e8e48.jpeg

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值