On Monday, 29 December 2014 at 14:13:20 UTC, Daniel Kozak wrote:
On Monday, 29 December 2014 at 13:22:41 UTC, Julian Kranz wrote:
So I hope you understand; I've got no problem with changing the type of the function g as you supposed. The bad thing is the additional overload that results in duplicated code.

So you can write something like this:

import std.stdio;

class Hugo {
     public int x = 42;

     void blah(this T)(void function(T h) f)
     {
         f(this);
     }
}

void main() {
     Hugo hugo = new Hugo();
     void function(Hugo h) f = function(Hugo h) {
         h.x = 99;
     };
     hugo.blah(f);

     const Hugo inge = hugo;
     void function(const Hugo h) g = function(const Hugo h) {
         writeln("foobar");
     };
     inge.blah(g);
}

So template methods deduce const now? Sweet.

I see one wart on this: `inge.blah((h) {});` doesn't work.

Reply via email to