On Wednesday, October 30, 2013 02:02:40 Peter Eisenhower wrote:
> I am confused as to why I cannot pass the return of the tag
> attribute directly into the parse int.
> 
> // This works
> string s = xml.tag.attr["key"];
> int key = parse!int(s);
> 
> // Compile error on these
> int key = parse!int(xml.tag.attr["key"]);
> int key = parse!int(cast(string) cml.tag.attr["key"]);

parse takes the string by ref and removes what it's parsing from the string, 
so it can't be a temporary. It has to be an lvalue. Also, casting results in 
an rvalue. To use parse, you should generally be using a local variable for 
the string.

- Jonathan M Davis

Reply via email to