什么是 `&|` 运算符,它来自哪里?

what is the `&|` operator and where does it come from?

大约在 this page 的中途,有一个 "Restrictions" 部分指出:"New operators such as **, <>, or &| cannot be created".

我知道 ** 是 python 的求幂运算符,我知道 <> 是 PHP 的 "spaceship" (compareTo)运算符. &| 到底是什么?

更正 <=> 是 "spaceship",<>!=

的常见替代品

&|的唯一用法被称为:位运算符..
它不是用在编程语言中,而是用来表达一些东西……比如:我想知道结果 and/or (&|) 是否匹配某物..

该页面试图说明的是,您无法在 C++ 中创建尚不存在的运算符。换句话说,<> 不是今天 C++ 中的运算符,因此您不能通过 T operator<>(U x, U y) 来定义此运算符的作用。这是一个无效的组合。对于列出的其他 "symbols" 也是如此。 C++ 定义了一组给定的运算符,+-%/*<<>> 和还有很多。这些被允许覆盖(使用用户定义的类型)。但是该语言不允许程序员发明 his/her 自己的符号并将它们变成运算符。

这有一组在词法上定义明确的固定运算符,有助于代码的解析。这不包括当您阅读

时这会引起的混淆
 if (x <&^> y) ...

 x = y +- 11;

[<&^>+- 到底是什么意思?]

当然,这也可能导致与现有运算符的混淆,但它至少比程序员编写 his/her 自己的版本和变体更容易混淆。

某些其他语言确实对其他符号有意义这一事实取决于那些语言。直到该符号在 C++ 中可用(并且有时会引入一些新的运算符,尽管很少见),它们作为 C++ 运算符是无效的。