On 07/17/2010 01:14 PM, Robert Jacques wrote:
I'm also hopeful for Functions-as-methods, although you may be borrowing
trouble with your example. It appears that templates are not included in
T.init's scope as the following compiles:

struct Bar {
void foo(T)() if (!is(bar.foo!int)) { writeln("recursive"); }
}

void foo( T)(T x) if (!is(T.init.foo())) { writeln("recursive"); }
void foo2(T)(T x) if (!is(T.init.foo())) { writeln("recursive"); }

Well it's not that the symbol is not included, it's that the expression doesn't compile. You should write is(T.init.foo!Something()) to see foo inside T.

Andrei

Reply via email to