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