問題タブ [ref-qualifier]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 演算子のオーバーロードで cv-qualifier と一緒に ref-qualifier を使用すると、右辺値の代入が許可されるのはなぜですか?
演算子に参照修飾子を追加すると、右辺値代入を行う可能性がなくなります
たとえば、次のようにコンパイルしますg++ -std=c++14 bar.cpp && ./a.out
あなたにあげます
もちろん、明示的に追加することでこれを「修正」できます&&
出力
ただし、 a を追加すると、構造体インスタンスconst &
を呼び出すこともできます。+=
出力
これを「修正」するには、const &&
明示的に削除する必要があります
出力
どうしてこれなの?ref-qualifier を追加すると、右辺値の割り当てが暗黙的に削除されるのはなぜですか? しかし、ref-qualifier と一緒に cv-qualifier を追加すると、暗黙的に右辺値の割り当てが追加されるように見えますか?
ここで明らかな何かが欠けていると確信しています。しかし、Google-Wan Kenobi は、私が理解するのを助けることができないようです.