为什么在C++中没有运算符〜=?

xml*_*lmx 1 c++ syntax language-design operators language-lawyer

int main()
{
    unsigned int a = 0;
    unsigned int b = 0;

    a ^= b; // ok
    a |= b; // ok
    a &= b; // ok
    a = ~b; // ok
    a ~= b; // error : expected ';' after expression
}
Run Code Online (Sandbox Code Playgroud)

^=,|=并且&=都是合法的.

为什么~=C++中不合法?

Max*_*kin 11

因为~是一元运算符,而不是二元运算符.

op=当第一个操作数是目标时,短格式仅适用于二元运算符.


Bat*_*eba 6

~只是一个一元的运营商.

对于任意运算符的a = a @ bto 的收缩只有在需要两个参数时才有意义; 即if 是二元运算符.a @= b@@