↓勘違いしてる。uint[] nextを使えばオブジェクト毎ソートできる。
import std.stdio; int[] mapsort(int min, int max)(int[] arr){ size_t[max-min+1] len; foreach(i;0..arr.length) len[arr[i]-min]++; size_t c; foreach(i;0..max) foreach(j;0..len[i]) arr[c++] = i; return arr; } void main(){ writefln(mapsort!(0,0x100)([1,4,2,5,3,3,5,2,4,1])); }