On Wednesday, November 13, 2013 11:32:18 Uplink_Coder wrote: > sort doesn't work on an primitive Array ? > Is that normal .... > please look @http://www.dpaste.dzfl.pl/961286e1 > because I don't know what i'm doing worng > > Thanks in Advance :D
Strings are treated as ranges of dchar, so if the element types is char or wchar, they're not random-access (since the number of code units per code point varies, meaning that each element in the array is a piece of a character and not necessarily an entire character), and sort requires random access. So, if you want to properly sort the string, you need to convert it to a random- access range - the mostly likely choice being dchar[], which you could do with to!(dchar[])(charArray), but of course, if you then want char[] again, you'd need to convert it back, e.g. to!(char[])(sort(to!(dchar[])(charArray))). However, if you're _certain_ that all of the characters are ASCII and therefore don't take more than one char, you can convert the string to ubyte[] and sort that. std.string.representation will do that for you. e.g. sort(representation(charArray)). But that _will_ mangle Unicode strings, so you need to be sure that your string only contains ASCII characters. - Jonathan M Davis
