Re: template instance cannot use local 'f' as parameter to non-global template

2011-07-13 Thread Tyro[a.c.edwards]
On 7/14/2011 12:24 AM, Trass3r wrote: Am 13.07.2011, 16:58 Uhr, schrieb Tyro[a.c.edwards] : Don't know it this is the right answer or a possible bug but it does the trick: void h() { import std.stdio; write("h()"); } class Bla { mixin wrap!h; } mixin template wrap(alias f) { void blub(typeof(

Re: template instance cannot use local 'f' as parameter to non-global template

2011-07-13 Thread Tyro[a.c.edwards]
On 7/14/2011 12:24 AM, Trass3r wrote: Am 13.07.2011, 16:58 Uhr, schrieb Tyro[a.c.edwards] : Don't know it this is the right answer or a possible bug but it does the trick: void h() { import std.stdio; write("h()"); } class Bla { mixin wrap!h; } mixin template wrap(alias f) { void blub(typeof(

Re: template instance cannot use local 'f' as parameter to non-global template

2011-07-13 Thread Trass3r
I've seen this error before... *searches memory and old code* Here you go: http://d.puremagic.com/issues/show_bug.cgi?id=3051 I think this is yet another issue. The inner template argument is not something on the stack but it is a template argument.

Re: template instance cannot use local 'f' as parameter to non-global template

2011-07-13 Thread Trass3r
Am 13.07.2011, 16:58 Uhr, schrieb Tyro[a.c.edwards] : Don't know it this is the right answer or a possible bug but it does the trick: void h() { import std.stdio; write("h()"); } class Bla { mixin wrap!h; } mixin template wrap(alias f) { void blub(typeof(&f) g = &f) {

Re: template instance cannot use local 'f' as parameter to non-global template

2011-07-13 Thread Tyro[a.c.edwards]
On 7/13/2011 11:35 PM, Trass3r wrote: Am 13.07.2011, 16:02 Uhr, schrieb Steven Schveighoffer : void h() {} class Bla { mixin wrap!h; } mixin template wrap(alias f) { void blub(alias g = f)() { g(); } } As a workaround, is there a reason you need blub to be parameterized? I mean, f is alr

Re: template instance cannot use local 'f' as parameter to non-global template

2011-07-13 Thread Trass3r
Am 13.07.2011, 16:02 Uhr, schrieb Steven Schveighoffer : void h() {} class Bla { mixin wrap!h; } mixin template wrap(alias f) { void blub(alias g = f)() { g(); } } As a workaround, is there a reason you need blub to be parameterized? I m

Re: template instance cannot use local 'f' as parameter to non-global template

2011-07-13 Thread Steven Schveighoffer
(); } test.d(18): Error: template instance cannot use local 'f' as parameter to non-global template blub(alias g = f) test.d(18): Error: template instance forward reference of f test.d(18): Error: template instance test.Bla.wrap!(h).blub!(f) error instantiating I've seen th

Re: template instance cannot use local 'f' as parameter to non-global template

2011-07-13 Thread Stephan
On 12.07.2011 15:06, Trass3r wrote: Is this a bug? If not, how do you make it work? void h() {} class Bla { mixin wrap!h; } mixin template wrap(alias f) { void blub(alias g = f)() { } } void main() { Bla b = new Bla(); b.blub(); } test.d(18): Error: template instance cannot use local '

Re: template instance cannot use local 'f' as parameter to non-global template

2011-07-13 Thread Trass3r
Anybody an idea?

template instance cannot use local 'f' as parameter to non-global template

2011-07-12 Thread Trass3r
local 'f' as parameter to non-global template blub(alias g = f) test.d(18): Error: template instance forward reference of f test.d(18): Error: template instance test.Bla.wrap!(h).blub!(f) error instantiating