0

C ++では、同等性のテストは通常​​、各クラスによって個別に実装されます。合理的な実装の下では、おそらくオブジェクトがそれ自体と等しいことを期待するでしょう。

コンパイラはこの最適化を行いますか?

言い換えれば、の場合、コンパイラはクラスタイプに対して&a == &bそれを想定することができますか?a == b

4

2 に答える 2

3

いいえ。クラスタイプ==は、演算子の適切なユーザー定義のオーバーロードがある場合にのみ比較できます。そして、その過負荷は、「合理的」であろうとなかろうと、何でもすることができます。

于 2013-03-14T11:38:04.050 に答える
3

1つの反例はNaNです。含むことはそれ自体と同等とは比較されませんdoubleNaN

于 2013-03-14T11:38:09.317 に答える