[phobos] std.string.cmp

Brad Roberts braddr at puremagic.com
Mon Jan 10 23:40:51 PST 2011


Sigh.  The reverted version doesn't build on 64 bit:

std/string.d(150): Error: cannot implicitly convert expression (s1.length -
s2.length) of type ulong to int
std/regexp.d(1714): Error: template instance
std.string.icmp!(char,immutable(char)) error instantiating

I agree that sizediff_t is much more convenient.  Maybe it is better to go ahead
and change the opCmp return type.

On 1/10/2011 11:11 PM, Andrei Alexandrescu wrote:
> I reverted to int. I was worried about a slight inefficiency but I guess it's
> hardly measurable.
> 
> Andrei
> 
> On 1/10/11 10:56 PM, Brad Roberts wrote:
>> Hrm.. I think I'd like to object to today's change of std.string.cmp to return
>> sizediff_t rather than int.  The reason.. Object.opCmp returns int.  So, using
>> cmp is needlessly painful.  A simple cast is dangerous.. consider what happens
>> if some how the cmp returns a multiple of 2^32.  But I guarantee that a simple
>> cast is what most people that run into the mismatch will do.
>>
>> Thoughts?
>> _______________________________________________
>> phobos mailing list
>> phobos at puremagic.com
>> http://lists.puremagic.com/mailman/listinfo/phobos
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos



More information about the phobos mailing list