Semantics of toString

Denis Koroskin 2korden at gmail.com
Tue Nov 10 16:34:39 PST 2009


On Wed, 11 Nov 2009 02:49:54 +0300, Andrei Alexandrescu  
<SeeWebsiteForEmail at erdani.org> wrote:

> Don wrote:
>> Lutger wrote:
>>> Don wrote:
>>> ...
>>>> There is a definite use for such as thing. But the existing toString()
>>>> is much, much worse than useless. People think you can do something  
>>>> with
>>>> it, but you can't.
>>>> eg, people have asked for BigInt to support toString(). That is an
>>>> over-my-dead-body.
>>>
>>> Since you are in the know and probably the biggest toString() hater  
>>> around: are there plans (or rejections thereof) to change toString()  
>>> before D2 turns gold? Seems to me it could break quite some code.
>>   I'm hoping someone will come up with a design.
>>  Straw man:
>>  void toString(void delegate(const(char)[]) sink, string fmt) {
>>  // fmt holds the format string from writefln/formatln.
>> // call sink() to print partial results.
>>  }
>
> I think the best option for toString is to take an output range and  
> write to it. (The sink is a simplified range.)
>
> Andrei

It means toString() must be either a template, or accept an abstract  
InputRange interface?



More information about the Digitalmars-d mailing list