On 3/3/15 4:06 AM, Tobias Pankrath wrote:
I have three questions? If I change the iterator which I get from algorithm, the owner data will change or not?
I'm not sure about this question.
How to use std.algorithm.fill with char types?
You cannot currently.
What is the type of char array holds why it does not matches char?
Because D is schizophrenic ;) Phobos considers char[] arrays not to be arrays of char, only ranges of dchar. Unless you talk to the compiler, where it happily treats char[] as an array.
I have no time to dig into this, but: is(typeof(arr.front = 'a')) does _not_ check if arr.front is of type char. It is true if you can assign an 'a' to arr.front.
That is the check in std.algorithm. It wants to fill the array by assigning 'a' to the front. In D land, char[] arrays are ranges of dchars, and are only READABLE. This means a char[] array can never be an output range. Boatloads of code specializes char[] arrays in order to work around this.
I guess we need another specialization (because this should be allowed, IMO).
-Steve