Can someone clarify for me the status and/or direction of string formatting in D?
We've got: 1. toString, the object method with no parameters. 2. toString(sink, format) 3. to!String() 4. format 5. writef/writefln 6. write/writeln I realize these exist for various reasons, some (1,3) are simple (unformatted) conversions, others (2,4-6) are designed to provide configurable formatting. The problem is that they are inconsistent with each other. Using std.bigint as an example: 1, 3, 4 and 6 don't work, or don't work as expected (to me at least). 1. prints 'BigInt', 3 and 4 are compile errors. I know bigint is a controversial example because Don has strong feelings against 1 and favors 2. (See bug #5231). I don't really have an opinion one way or the other but I need to know what to implement in my arbitrary-precision floating point module. This obviously relies heavily on bigint. So, is there a transition underway in the language (or just Phobos) from toString, writeln and format, to toString(sink,format) and writefln? Or is this just a divergence of views, both of which are acceptable and we'll have to get used to choosing one or the other? Or am I just mistaken in believing there is any significant conflict? I apologize if this has already been hashed out in the past and, if so, I would appreciate someone pointing me to that discussion. (Or just the results of the discussion.) Paul