From: Yukihiro Matsumoto Date: 2008-10-27T12:59:39+09:00 Subject: [ruby-dev:36950] Re: SimpleDelegator.new(SystemCallError.new(0)) and == まつもと ゆきひろです In message "Re: [ruby-dev:36933] Re: SimpleDelegator.new(SystemCallError.new(0)) and ==" on Sun, 26 Oct 2008 15:11:18 +0900, Yugui writes: |Tanaka Akira さんは書きました: |> 以下のように == が対称でないのはよろしくないんじゃないでしょ |> うか。 | |o = Object.new |p SimpleDelegator.new(o) == o |p o == SimpleDelegator.new(o) | |もそうなりますね。思うに、 |if (TYPE(rhs) != expected) { | return funcall(rhs, cmp, self); |} | |的な実装をしてないクラス一般で発生しますよね。 |これはいかがしたものでしょうか。比較用のcoerceのようなものが必要でしょうか? 対称性を維持しようとすればそうなるかもしれませんね。実際のと ころ、どのくらい重要なものなんでしょうか。かなり(実装、実行と も)コストがかかることが予想されますが、それを正当化するくらい? まつもと ゆきひろ /:|)