digitalmars.D.bugs - [Issue 15419] New: std.conv.parse() does not accept string literals
- via Digitalmars-d-bugs (42/43) Dec 07 2015 https://issues.dlang.org/show_bug.cgi?id=15419
https://issues.dlang.org/show_bug.cgi?id=15419 Issue ID: 15419 Summary: std.conv.parse() does not accept string literals Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: trivial Priority: P1 Component: phobos Assignee: nobody puremagic.com Reporter: thomas.bockman gmail.comFrom the std.conv.parse() unittests:// BUG the size of China // foreach (i; 2..37) // { // assert(parse!int("0",i) == 0); // assert(parse!int("1",i) == 1); // assert(parse!byte("10",i) == i); // } foreach (i; 2..37) { string s = "0"; assert(parse!int(s,i) == 0); s = "1"; assert(parse!int(s,i) == 1); s = "10"; assert(parse!byte(s,i) == i); } // Same BUG as above //assert(parse!int("0011001101101", 2) == 0b0011001101101); // assert(parse!int("765",8) == 0765); // assert(parse!int("fCDe",16) == 0xfcde); auto s = "0011001101101"; assert(parse!int(s, 2) == 0b0011001101101); s = "765"; assert(parse!int(s, 8) == octal!765); s = "fCDe"; assert(parse!int(s, 16) == 0xfcde); This is caused by `parse()` using pass-by-ref for the first argument, which does not support rvalues since `scope ref` isn't implemented yet. --
Dec 07 2015