Sorting an Array

Frits van Bommel fvbommel at
Tue Jul 10 08:53:00 PDT 2007

gogamza wrote:
> 	int opCmp(keyvalue* s){
> 		char[][] paramKV = split(s.str, "-");
> 		char[][] thisKV = split(this.str, "-");		
> 		return toInt(thisKV[0]) - toInt(paramKV[0]);
> 	}

That'll start going wrong once the difference between the integers 
starts gets over int.max. The safest way to return an opCmp value for 
integers and larger basic types is with things like:
auto val1 = toInt(thisKV[0]);
auto val2 = toInt(paramVK[0]);
return typeid(int).compare(&val1, &val2);
(Optionally, replace 'int' with 'typeof(val1)' in that last line if 
you're not sure the type returned by toInt will always be an int)

More information about the Digitalmars-d-learn mailing list