3

==グローバル演算子と!=浮動小数点をオーバーロードするのは悪い習慣ですか? 私はゲーム環境で高速浮動小数点を使用していますが、非常に近い数値が等しくないと予想される状況を想像できないため、どこでもファジー比較を使用することを考えていました。

何かアドバイス ?

4

3 に答える 3

11

できません。C++ 演算子のオーバーロードには、少なくとも 1 つのユーザー定義型が含まれている必要があります。

できたとしても、それはおそらく悪い考えです。ユーザーは、等式が推移的であることを期待しています。つまり、 ifa == bb == cthena == cです。あなたのあいまいな比較は推移的ではないようです。

于 2013-05-28T15:35:53.213 に答える
1

他の投稿では、別の観点から、技術的な問題について言及しています。

これらの演算子がオーバーロードされることを期待する人は誰もいませんが、合理的な人はalmostEquals関数を期待するので、これは悪い習慣です。その奇妙で奇妙で、実際に何が起こっているのかを覆い隠しています。

于 2013-05-28T15:48:47.303 に答える