On Tue, 14 May 2013 00:32:49 -0400, Timothee Cour <thelastmamm...@gmail.com> wrote:

I declared fun(T) as fun(T)() with the added parenthesis, and it
worked (tested on dmd 2.062 / ubuntu 64bits).

sorry I reduced wrongly.
Here's the inconsistency:

----
struct A {
        this(T)(T x) {  }
}
auto fun1(){    
        auto a=A.__ctor!(int)(1); //OK

This line causes an error message for me:

testctor.d(5): Error: need 'this' for 'this' of type 'pure nothrow ref @safe A(int x)'

        return a;
}
auto fun2(){    
//      return A.__ctor!(int)(1); //uncomment gives Error: type A is not an
expression

Same error for me here:

testctor.d(9): Error: need 'this' for 'this' of type 'pure nothrow ref @safe A(int x)'

I'm using dmd beta candidate, 2.061 does give the same error message you have.

Note that you may expect this as you are using an undocumented "feature" :)

-Steve

Reply via email to