http://d.puremagic.com/issues/show_bug.cgi?id=4532
--- Comment #11 from Kenji Hara <k.hara...@gmail.com> 2012-04-09 21:40:28 PDT --- Issue 6595 was a bug report only about std.string.format/sformat functions. >From issue 6595 comment #0: > 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]; > } And I proposed a pull and it is discussed in here: https://github.com/D-Programming-Language/phobos/pull/231 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------