On 10/09/2014 08:06 PM, Joel wrote:
On Tuesday, 30 September 2014 at 17:27:09 UTC, Adam D. Ruppe wrote:
On Tuesday, 30 September 2014 at 17:22:44 UTC, Gary Willoughby wrote:
What is a sink delegate?

Instead of

string toString() { return "foo"; }

for example, you would use:

void toString(void delegate(string) sink) { sink("foo"); }

The sink argument there is then free to view and discard the data or
to make a private copy using whatever scheme it desires.


How do you use that toString? Maybe an example? Below is my failed effort.

import std.stdio;

struct Try {
     string name;
     long age;

     void toString(void delegate(string) sink) {
         sink("foo");
     }
}

void main() {
     Try t = Try("Joel", 35);
     writeln(t);
}

The signature of that toString is different from what I have been seeing and using. The following works:

    void toString(void delegate(const(char)[]) sink) const {

Ali

Reply via email to