Comparison

Ary Borenszweig ary at esperanto.org.ar
Tue Nov 26 16:46:29 PST 2013


On 11/26/13 7:00 PM, Namespace wrote:
> On Tuesday, 26 November 2013 at 21:37:49 UTC, Jonas Drewsen wrote:
>> Isn't it a bug that the assertion is triggered for this:
>>
>> class Test3 {}
>>
>> void main()
>> {
>>     assert( (new Test3()) == (new Test3()) );
>> }
>>
>> Tried it on http://dpaste.dzfl.pl/ as well.
>>
>> /Jonas
>
> Because your Test3 class has probably no own opEquals method, your
> comparison is the same as
> assert( (new Test3()) is (new Test3()) );
> which is obviously wrong.
>
> See:
> https://github.com/D-Programming-Language/druntime/blob/master/src/object_.d#L116
>

The ddoc for the method is wrong. It should say something like:

returns != 0 if this object has the same memory address as obj. 
Subclasses may override this method to provide custom equality comparison.

Because for the OP, Test3 has the same contents as the other Test3 (both 
empty).


More information about the Digitalmars-d-learn mailing list