我从一些遗留代码中看到了以下代码:
size_t a = 1 ???- 2 :0;
这个符号???-
在 C++ 中是什么意思?我应该怎么理解?
其实是:
size_t a = 1 ? ~2 :0;
??-
是一个三元组~
三合符来自一个古老的时代……在我们中的一些人出生之前。
在过去,有些字符并不总是得到支持。一个不知情的程序员会尝试输入这样的字符,却发现它在键盘上不存在!
图片来源:http ://www.myoldmac.net/cgi-data/forum/phpBB2/viewtopic.php?t=305
因此,添加了三元组以允许程序员在这些字符不存在时访问它们的功能(无论是在编码中还是从键盘中)。
如今,它们已经过时并且在混淆读者方面比绕过旧标准更有效。
因此,要么该代码真的很旧,要么作者是个混蛋。
??-
是波浪~
字符的三元组;该行相当于:
size_t a = 1 ? ~2 :0;
??-
是~
字符的三元组。其他一些三元组是:
??= for #
??/ for \
??' for ^
??! for |
三元组的使用现在非常罕见。