这基本上就是标题所描述的:
为什么C++没有~=和!=运算符?
它们偶尔会很有用,特别是在探索重载可能性时。
而替代的a = ~a
和a = !a
表达方式过于冗长。
这基本上就是标题所描述的:
为什么C++没有~=和!=运算符?
它们偶尔会很有用,特别是在探索重载可能性时。
而替代的a = ~a
和a = !a
表达方式过于冗长。
将@
视为“通用”运算符,类似于
a @= b
是......的简写
a = a @ b
所以您可以看到,@=
形式适用于相应的需要两个操作数的二元运算符。
但是!
和~
是一元运算符。因此!=
和~=
将偏离这一点。@
在表示一元运算符时等同于@=
和=@
,这是不必要的冗余。您对冗长的主张是错误的。
a != a
的一元运算符和二元运算符? - 463035818_is_not_a_numbera $= a
,我会预期a
被计算两次,因此在这里并没有任何好处。 - chrisa @= a
也是 一元 @ 的简写,那么 +=
和 -=
也会有问题,因为它们既可以是一元的,也可以是二元的。(严格来说,* 也是一元的,但是一元 * 是指针/迭代器解引用) - MSalters
!=
,但我认为它的含义不是你想象的那样。 - Mad Physicist=~
运算符,那么a = ~a
应该如何拼写? - SergeyA〜=
,这不会引起歧义。 - Mad Physicist~=a
,作为a = ~a
的简写。为了更好地展示减少冗长的效果:~=long_variable_name_here
相对于long_variable_name_here = ~long_variable_name_here
。 - eerorika