parse int error

Peter Eisenhower peter.eisenhower at gmail.com
Sun Nov 3 11:58:33 PST 2013


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


More information about the Digitalmars-d-learn mailing list