On Thu, 10 Feb 2011 09:48:14 -0500, useo <[email protected]> wrote:


I created a complete, new file with the following code:

module example;

void main(string[] args) {
        Example!(void function()) myVar;
}

class Example(T) if (is(T == delegate) || is(T == function)) {
}

And what I get is:

example.d(4): Error: template instance Example!(void function()) does
not match template declaration Example(T) if (is(T == delegate) || is
(T == function))
example.d(4): Error: Example!(void function()) is used as a type

I'm using the current stable version 2.051.

Found this invalid bug.  Apparently, this is expected (!) behavior:

http://d.puremagic.com/issues/show_bug.cgi?id=3464

So use this instead:

class Example(T) if (is(T == delegate) || is(typeof(*T.init) == function))

Ugly, I know, but I guess that's what we got to work with.

-Steve

Reply via email to