[Issue 11863] New: std.conv.to!string(int/uint, radix) returns incorrect string

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri Jan 3 10:38:48 PST 2014


https://d.puremagic.com/issues/show_bug.cgi?id=11863

           Summary: std.conv.to!string(int/uint, radix) returns incorrect
                    string
           Product: D
           Version: D2
          Platform: x86
        OS/Version: Windows
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Phobos
        AssignedTo: nobody at puremagic.com
        ReportedBy: electrolysis.jp+d at gmail.com


--- Comment #0 from e10s <electrolysis.jp+d at gmail.com> 2014-01-04 03:38:46 JST ---
import std.conv, std.stdio;

void main(){
    /// int
    static assert(to!string(15, 10) == "15");  // success
    // assert(to!string(15, 10) == "15");  // failure
    assert(to!wstring(15, 10) == "15"w);  // success
    assert(to!dstring(15, 10) == "15"d);  // success
    writeln(to!string(15, 10));  // ??

    /// uint
    static assert(to!string(15u, 10) == "15");  // success
    // assert(to!string(15u, 10) == "15");  // failure
    assert(to!wstring(15u, 10) == "15"w);  // success
    assert(to!dstring(15u, 10) == "15"d);  // success
    writeln(to!string(15u, 10));  // ??

    /// long
    static assert(to!string(15L, 10) == "15");  // success
    assert(to!string(15L, 10) == "15");  // success
}


In the case of "(r)dmd foo.d", only to!string(int, radix) and
to!string(uint, radix) return "0" at run time with any radix
though "15" is returned when compiled with "-debug".

Environment: DMD 2.064.2 on Win7 SP1 32-bit

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list