Preliminary submission - std.rational and std.typelist

H. S. Teoh hsteoh at quickfur.ath.cx
Mon Oct 8 00:36:14 PDT 2012


On Sun, Oct 07, 2012 at 01:15:50PM +0400, Dmitry Olshansky wrote:
[...]
> Just define method with this signature:
> void toString(scope void delegate(const(char)[]) sink)
> 
> And bingo! It's used in all of formatting stuff like write(f)(ln),
> format, formattedWrite etc.
> 
> e.g. before posting I played with this:
> 
> import std.stdio, std.format;
> 
> struct A{
> 	int k;
> 	void toString(scope void delegate(const(char)[]) sink)
> 	{
> 		formattedWrite(sink, "[%d]", k);
> 	}
> }
> 
> void main(){
> 	A a = A(90);
> 	writeln(a);
> }
[...]

+1. This is much more powerful and useful, not to mention more efficient
in many cases (by avoiding the need to create multiple string buffers),
than the current toString(). I like this.


T

-- 
We are in class, we are supposed to be learning, we have a teacher... Is
it too much that I expect him to teach me??? -- RL


More information about the Digitalmars-d mailing list