Why does Object.opEquals return int
Bruno Medeiros
brunodomedeiros+spam at com.gmail
Sat Nov 18 05:49:01 PST 2006
Bill Baxter wrote:
> Bruno Medeiros wrote:
>> Stewart Gordon wrote:
>>
>>> Anders F Björklund wrote:
>>>
>>>> Kristian Kilpi wrote:
>>>>
>>>>> So the original question remains: why 'opEquals' returns int?
>>>>
>>>>
>>>> Walter says it is for performance reason, when e.g. sorting...
>>>>
>>>> http://www.digitalmars.com/d/archives/digitalmars/D/bugs/7933.html
>>>
>>>
>>> I'm still not convinced that there's any way that opEquals can be
>>> made more efficient by returning int instead of bool.
>>>
>>> Stewart.
>>>
>>
>> Even more so due to the SETE instruction (which gcc uses) and makes
>> converting to a bool after a comparison just as fast as getting an
>> int. I wish Walter would comment on that, because, in the point that
>> the discussion was left using a bool would be just as fast as an int,
>> and I would like a lot of those functions like opEquals to return a bool.
>
> I think it was already pointed out that instruction count doesn't tell
> you anything cycle counts. SETE maybe one instruction, but that doesn't
> necessarily mean it's any faster. I may be. I don't know. Just it
> isn't a given. Also I you're free to make your own classes return bool
> from opCmp, it's just Object opCmp that returns int. And note that it's
> only for _value_ comparison of objects.
>
> Personally I think Object.opCmp returning int is an oddity, but it pales
> in comparison with the mixins/imports problem, the ambiguity of auto,
> and the major bugs left in variadic templates.
>
> --bb
On that previous discussion, a page which listed the internal clock
counts for the instruction was linked
(http://www.cs.tut.fi/~siponen/upros/intel/instr/sete_setz.html) where
we can see it isn't any slower.
--
Bruno Medeiros - MSc in CS/E student
http://www.prowiki.org/wiki4d/wiki.cgi?BrunoMedeiros#D
More information about the Digitalmars-d
mailing list