www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 15419] New: std.conv.parse() does not accept string literals

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.com

From 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