为什么C++没有〜=和!=运算符?

3 c++

这几乎与标题中描述的一样:

为什么C++没有〜=和!=运算符?

它们偶尔会有用,特别是在探索超载的可能性时.

替代品a = ~aa = !a配方不必要地冗长.

Bat*_*eba 17

@作为"通用"运营商,像

a @= b
Run Code Online (Sandbox Code Playgroud)

是简写

a = a @ b
Run Code Online (Sandbox Code Playgroud)

因此,您可以看到该@=表单适用于二进制运算符,其中对应@的2个操作数.

但是!,~一元运营商.所以!=,~=这将是一个偏离.@当表示一元运算等价@=,=@哪些是不必要的多余性.你对冗长的断言是错误的.

  • @MadPhysicist你如何区分`a!= a`一元和'a!= a`二进制? (5认同)
  • @MadPhysicist,有什么意义?你所做的只是交换两个字符.看一下'a $ = a`,我希望`a`能够被评估两次,所以那里也没有任何好处. (4认同)
  • @MadPhysicist:因为那不是更紧凑,只是重新排列. (3认同)
  • 另外,如果`@ = a也是_unary_ @的简写,我们遇到`+ =`和` - =`的问题,因为它们既是一元的,也是二元的.(从技术上讲,*是*,但是一元*是指针/迭代器的解引用) (2认同)