Andrei Alexandrescu wrote:
grauzone wrote:
Andrei Alexandrescu wrote:
grauzone wrote:
Yes. The way it should be is not with sink, but with the standard output iterator method put().

void streamOut(T, R)(T object, R range)
{
    foreach(x; a) range.put(x);
    range.put(b);
    range.put(c);
}

Eh. Is a sink callback too simple and easy to use or what?

?

Why make it more complicated than it has to be?

I am making it simpler.

How is it simpler?

sink(): simple delegate with the signature void delegate(char[] data);
output range: um what...? yeah, I know it has a put() method that takes... something. What exactly is it supposed to take in your example? Is streamOut() a method of the object to be dumped? What exact types to T and R have? (You need the exact type if streamOut is supposed to be a member function, and thus has to be virtual, so that you can it use like the Object.toString method.)

Also, I don't know ranges, but your example doesn't seem to make much sense.

s/but/consequently/

Probably. Just imagine you had to explain it to someone who's new to D. Actually, I _am_ new to D2.0.

So, um... what is a b c and T object?


Andrei

Reply via email to