Re: parse int error
On Wednesday, 30 October 2013 at 18:19:13 UTC, Ali Çehreli wrote: On 10/29/2013 06:02 PM, 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]); A trivial wrapper makes it convenient: import std.xml; import std.conv; T getAttr(T)(DocumentParser xml, string attrName) { string s = xml.tag.attr[attrName]; T attr = parse!T(s); return attr; } unittest { auto xml = new DocumentParser(`test key=1/test`); auto key = xml.getAttr!int(key); assert(key == 1); } void main() {} Ali Thanks
parse int error
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]);
Re: parse int error
On Wednesday, 30 October 2013 at 01:02:45 UTC, 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]); This is the compile error Error: template instance std.conv.parse!(int,const(immutable(char)[])) error instantiating