An issue with setting delegates via templates

Andrej Mitrovic andrej.mitrovich at gmail.com
Thu Oct 27 09:01:21 PDT 2011


So it seems this is an issue with a newer signals implementation.

The old one works:

import std.signals;

struct Foo
{
    mixin Signal!(int) sig;
}

class Bar
{
   void x(string) { }
   void x(int) { }
}

void main()
{
    Foo foo;
    auto bar = new Bar;

    foo.sig.connect(&bar.x);
    foo.sig.emit(1);
}

But the new reimplementation (not in Phobos) doesn't:

import signalsnew;

struct Foo
{
    Signal!(int) sig;  // no need for mixin in new signals
}

class Bar
{
   void x(string) { }
   void x(int) { }
}

void main()
{
    Foo foo;
    auto bar = new Bar;

    foo.sig.connect(&bar.x);
    foo.sig.emit(1);
}

The new one: https://gist.github.com/1194497

I'll investigate this further then.


More information about the Digitalmars-d-learn mailing list