Re: Why does enumerate over range return dchar, when ranging without returns char?

2018-05-03 Thread Jonathan M Davis via Digitalmars-d-learn
On Thursday, May 03, 2018 22:00:04 rikki cattermole via Digitalmars-d-learn wrote: > On 03/05/2018 9:50 PM, ag0aep6g wrote: > > On 05/03/2018 07:56 AM, rikki cattermole wrote: > >>> ``` > >>> import std.stdio; > >>> import std.range : enumerate; > >>> > >>> void main() > >>> { > >>> char[] s

Re: Why does enumerate over range return dchar, when ranging without returns char?

2018-05-03 Thread rikki cattermole via Digitalmars-d-learn
On 03/05/2018 9:50 PM, ag0aep6g wrote: On 05/03/2018 07:56 AM, rikki cattermole wrote: ``` import std.stdio; import std.range : enumerate; void main() {  char[] s = ['a','b','c']; char[3] x; auto i = 0; foreach(c; s) { x[i] = c; i++; }

Re: Why does enumerate over range return dchar, when ranging without returns char?

2018-05-03 Thread ag0aep6g via Digitalmars-d-learn
On 05/03/2018 07:56 AM, rikki cattermole wrote: ``` import std.stdio; import std.range : enumerate; void main() {  char[] s = ['a','b','c']; char[3] x; auto i = 0; foreach(c; s) { x[i] = c; i++; } writeln(x); } ``` Above works without cast. '''

Re: Why does enumerate over range return dchar, when ranging without returns char?

2018-05-03 Thread rikki cattermole via Digitalmars-d-learn
On 03/05/2018 5:44 PM, James Blachly wrote: I am puzzled why enumerating in a foreach returns a dchar (which forces me to cast), whereas without the enumerate the range returns a char as expected. Example: ``` import std.stdio; import std.range : enumerate; void main() { char[] s =

Why does enumerate over range return dchar, when ranging without returns char?

2018-05-02 Thread James Blachly via Digitalmars-d-learn
I am puzzled why enumerating in a foreach returns a dchar (which forces me to cast), whereas without the enumerate the range returns a char as expected. Example: ``` import std.stdio; import std.range : enumerate; void main() { char[] s = ['a','b','c']; char[3] x; auto i =