OROT -- 関係する演算子を一緒に上書き(Overwrite Related Operators Together)
C++ 検査 への移動
説明
ある種の演算子は、関係のあるものと一緒にオーバーロードしなければならず、そうでなければ、オーバーロードしないでください。 たとえば、delete 演算子をオーバーロードせずに new 演算子だけをオーバーロードすると、アプリケーションがクラッシュするおそれがあります。
OROT 検査では、以下の演算子ペアがオーバーロードされていないかを確認し、両方ではなく一方だけがオーバーロードされている場合には、違反を発生させます。 関連する演算子のどの組み合わせを確認対象とするかは、オプション パネルで選択できます。 デフォルトでは、すべて選択されています。
検査の対象となり得る相反演算子のペアは以下です。
==
と!=
+
と+=
-
と-=
new
とdelete
誤った例
class LinkedListIterator {
public:
bool operator== (LinkedListIterator i) const;
...
};
正しい例
class LinkedListIterator {
public:
bool operator== (LinkedListIterator i) const;
bool operator!= (LinkedListIterator i) const;
...
};