(from my previous post: http://forum.dlang.org/thread/ikccpljusggbjekaqwmp@forum.dlang.org#post-bwfkyaurbgbmwcsepwtx:40forum.dlang.org) Is that a bug? The code below returns: "main.A!(double).A" if we uncomment "auto c=make!A(1.0);", we get: "main.a!(double).A" ---- module main; import std.stdio; class A(T){ T x; this(T x){this.x=x;} } auto make(alias a,T...)(T args){ return new a!T(args); } void main(){ //auto c=make!A(1.0); auto b=new A!double(1.0); writeln(typeid(b)); } ---- If this behavior is not a bug, I wonder what's the rationale, but also, how can we have such a "make" function that doesn't mess up the template class name depending on the order of which is used first (the make!T variant or the new A!T) ?
THIS ISSUE HAS BEEN MOVED TO GITHUB https://github.com/dlang/dmd/issues/18470 DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB