Andrei's std.path review
Lars T. Kyllingstad
public at kyllingen.NOSPAMnet
Sat Aug 13 07:37:02 PDT 2011
On Sat, 13 Aug 2011 09:26:45 -0500, Andrei Alexandrescu wrote:
> On 8/13/11 7:20 AM, Lars T. Kyllingstad wrote:
>> On Thu, 11 Aug 2011 00:27:54 -0700, Jonathan M Davis wrote:
>>> On Thursday, August 11, 2011 07:10:08 Lars T. Kyllingstad wrote:
>>>> On Wed, 10 Aug 2011 12:37:01 -0600, Andrei Alexandrescu wrote:
>>>>> * filenameCharCmp and filenameCmp -> why long and not int?
>>>>
>>>> filenameCharCmp() returns a-b, and since a and b are dchars, the
>>>> corresponding signed type is long. filenameCmp() returns long
>>>> because filenameCharCmp() does.
>>>
>>> I'd argue that you should just cast it to int and return int. All the
>>> various compare functions promise is whether the return value is less
>>> than, equal to, or greater than 0. Relying on the exact value is
>>> wrong. And normally such functions return int. So, I don't see any
>>> reason why these shouldn't be change to return int.
>>
>> But what do we gain by making it an int? long just seems more natural
>> in this case, IMO.
>
> Unicode characters range in between 0 through 1,114,111. So the most
> natural type of the difference is int.
>
> This would be the first time I'm seeing an API returning a ternary value
> as a long.
>
> (Also, 64-bit machines can operate on two 32-bit integrals
> simultaneously (literally) so 32-bit integrals may be faster. Probably
> not a material advantage.)
All right, you have convinced me. int it is. :)
-Lars
More information about the Digitalmars-d
mailing list