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