metastrings.ToString

alcohol alcohol_thanks at hotmail.co.jp
Thu Apr 5 05:57:07 PDT 2007


A bug in Phobos.

--- foo.d ---
import std.metastrings;
pragma(msg,ToString!(0x100000000));

void main() {}
-------------


> dmd foo.d
0
D:\tool\program\d\dmd\bin\..\..\dm\bin\link.exe test,,,user32+kernel32/noi;


An above result is bug.
A correct result is:


> dmd test.d
4294967296
D:\tool\program\d\dmd\bin\..\..\dm\bin\link.exe test,,,user32+kernel32/noi;


Need To modify std/metastrings.d:


/// ditto
template ToString(long I)
{
    static if (I < 0)
	const char[] ToString = "-" ~ ToString!(cast(ulong)(-I));
    else
	const char[] ToString = ToString!(cast(uint)I); // <- "uint" to "ulong"
}


More information about the Digitalmars-d-bugs mailing list