Re: Why is ElementType!(char[]) == dchar?
On Sat, Jul 09, 2016 at 11:57:36PM +1200, rikki cattermole via Digitalmars-d-learn wrote: > On 09/07/2016 11:46 PM, Tofu Ninja wrote: > > On Saturday, 9 July 2016 at 11:35:24 UTC, Tofu Ninja wrote: > > > On Saturday, 9 July 2016 at 11:29:18 UTC, ketmar wrote: > > > > On Saturday, 9 July 2016 at 11:24:01 UTC, Tofu Ninja wrote: > > > > > Seems pretty silly to me... > > > > > > > > due to universally beloved autodecoding. > > > > > > Hmmm... I dont really know the history of autodecoding, why was that > > > supposed to be a good idea? > > > > Hmm, well I fixed my problem that originally prompted me to ask this by > > using ubyte instead of char. Still kinda curious on the whole > > autodecoding thing and why it's even a thing. > > In this case, its not aut odecoding. [...] Actually, this is exactly what autodecoding is about. The .front of string and wstring are always decoded to dchar. A long time ago when this was first written it was deemed a good idea, but over the years experience has shown that it was a bad design (though some may argue this point). Nowadays we're trying to steer away from it, but due to the large amount of Phobos code that depends on it, it's probably here to stay for the next little while yet. (My hope is that eventually it will become irrelevant and deprecable... but we're far from that right now.) T -- What doesn't kill me makes me stranger.
Re: Why is ElementType!(char[]) == dchar?
On Saturday, 9 July 2016 at 11:57:36 UTC, rikki cattermole wrote: That implementation is weird in that it returns a dchar instead of the raw type. Which is decoding, but it is not auto decoding. Auto decoding involves the foreach statement. You have that backwards. foreach only decodes if you specifically ask for it (by specifying wchar or dchar in the statement). Phobos does it automatically, whether you like it or not.
Re: Why is ElementType!(char[]) == dchar?
On Saturday, 9 July 2016 at 11:57:36 UTC, rikki cattermole wrote: In this case, its not aut odecoding. ElementType is using std.range : front for array's since they do not provide a front method. That implementation is weird in that it returns a dchar hello, autodecoding.
Re: Why is ElementType!(char[]) == dchar?
On Saturday, 9 July 2016 at 11:46:14 UTC, Tofu Ninja wrote: On Saturday, 9 July 2016 at 11:35:24 UTC, Tofu Ninja wrote: On Saturday, 9 July 2016 at 11:29:18 UTC, ketmar wrote: On Saturday, 9 July 2016 at 11:24:01 UTC, Tofu Ninja wrote: Seems pretty silly to me... due to universally beloved autodecoding. Hmmm... I dont really know the history of autodecoding, why was that supposed to be a good idea? Hmm, well I fixed my problem that originally prompted me to ask this by using ubyte instead of char. Still kinda curious on the whole autodecoding thing and why it's even a thing. Another solution is to use ElementEncodingType, which is like ElementType but with a special hack for arrays of characters, to return the actual type and not the autodecoded one.
Re: Why is ElementType!(char[]) == dchar?
On 09/07/2016 11:46 PM, Tofu Ninja wrote: On Saturday, 9 July 2016 at 11:35:24 UTC, Tofu Ninja wrote: On Saturday, 9 July 2016 at 11:29:18 UTC, ketmar wrote: On Saturday, 9 July 2016 at 11:24:01 UTC, Tofu Ninja wrote: Seems pretty silly to me... due to universally beloved autodecoding. Hmmm... I dont really know the history of autodecoding, why was that supposed to be a good idea? Hmm, well I fixed my problem that originally prompted me to ask this by using ubyte instead of char. Still kinda curious on the whole autodecoding thing and why it's even a thing. In this case, its not aut odecoding. ElementType is using std.range : front for array's since they do not provide a front method. That implementation is weird in that it returns a dchar instead of the raw type. Which is decoding, but it is not auto decoding. Auto decoding involves the foreach statement. So std.traits : ForeachType if that returned dchar then yes that would be because of auto decoding.
Re: Why is ElementType!(char[]) == dchar?
On Saturday, 9 July 2016 at 11:35:24 UTC, Tofu Ninja wrote: On Saturday, 9 July 2016 at 11:29:18 UTC, ketmar wrote: On Saturday, 9 July 2016 at 11:24:01 UTC, Tofu Ninja wrote: Seems pretty silly to me... due to universally beloved autodecoding. Hmmm... I dont really know the history of autodecoding, why was that supposed to be a good idea? Hmm, well I fixed my problem that originally prompted me to ask this by using ubyte instead of char. Still kinda curious on the whole autodecoding thing and why it's even a thing.
Re: Why is ElementType!(char[]) == dchar?
On Saturday, 9 July 2016 at 11:29:18 UTC, ketmar wrote: On Saturday, 9 July 2016 at 11:24:01 UTC, Tofu Ninja wrote: Seems pretty silly to me... due to universally beloved autodecoding. Hmmm... I dont really know the history of autodecoding, why was that supposed to be a good idea?
Re: Why is ElementType!(char[]) == dchar?
On Saturday, 9 July 2016 at 11:24:01 UTC, Tofu Ninja wrote: Seems pretty silly to me... due to universally beloved autodecoding.
Re: Why is ElementType!(char[]) == dchar?
On 09/07/2016 11:24 PM, Tofu Ninja wrote: Seems pretty silly to me... http://dlang.org/phobos/std_range_primitives.html#.front
Why is ElementType!(char[]) == dchar?
Seems pretty silly to me...