2016-06-01 25 views
3

これはタイトルとほぼ同じです:なぜC++には〜=と!=演算子がありませんか?

なぜC++には〜=と!=演算子がありませんか?

これらは、特に過負荷の可能性を検討する際に役立ちます。

代替のa = ~aおよびa = !aの処方は不必要に冗長です。

+0

[論理 '!='](http://en.cppreference.com/w/cpp/language/operator_comparison)のようにバイナリ '!='を意味します。 – NathanOliver

+8

C++には既に! = 'しかし、私はそれがあなたが意味すると思うことを意味するとは思わない。 –

+3

'=〜'演算子がある場合、 'a =〜a 'のスペルはどうですか? – SergeyA

答えて

16

「ジェネリック」オペレータとして@を取ると、

a @= b 

のようなものは、あなたが@=フォームが対応する@バイナリ事業者に適用されていることがわかります

a = a @ b 

の省略形です2つのオペランドが必要です。

しかし、!および~は、ユニーラーオペレーターです。だから!=~=はこれからの出発点になります。 @を単一とすると、不要な超過分である@=[email protected]となる。あなたの冗長性の主張は間違っています。

+0

'$'を一般的な単項演算子として定義し、 'a $ = a'を' a = $ a'と同じにするのはなぜでしょうか?私はそれが無意味で何も保存しないことに同意しますが、それはできます。 –

+3

@MadPhysicist:そ​​れはもうコンパクトではないので、ただ並べ替えただけです。 –

+5

@MadPhysicistどうやって 'a!= a'単項と 'a!= a'バイナリ? – user463035818

関連する問題