http://d.puremagic.com/issues/show_bug.cgi?id=6595
Summary: std.string.format() and sformat() are obsolete Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: Phobos AssignedTo: nob...@puremagic.com ReportedBy: k.hara...@gmail.com --- Comment #0 from Kenji Hara <k.hara...@gmail.com> 2011-09-02 09:54:03 PDT --- This enhancement issue is nearly a bug report. format() and sformat() use std.format.doFormat as their implementations, but it is old feature, and its features are fewer than formatValue family. And it is causing not a few issues: bug 3715 - std.string.format can't use const/immutable toString functions bug 4266 - add support for structs in std.format.doFormat bug 4532 - Position specifiers don't work in format bug 5444 - std.string.format: arguments without format specifier appended to result bug 5970 - fix BigInt.toString I think format() should be implemented just appender and formattedWrite like follows: string format(Char, Args...)(in Char[] fmt, Args args) { auto w = appender!string(); formattedWrite(w, fmt, args); return w.data; } This 'format()' provides just the same features as writef(ln) functions about formatting. And sformat() also could replace like follows: char[] sformat(Char, Args...)(char[] buf, in Char[] fmt, Args args) { size_t i; void sink(const(char)[] s) { if (buf.length < i + s.length) onRangeError("std.string.sformat", 0); buf[i .. i + s.length] = s[]; i += s.length; } formattedWrite(&sink, fmt, args); return buf[0 .. i]; } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------