Bug 8674 – template class name unconsistent behavior

Status
NEW
Severity
normal
Priority
P3
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2012-09-16T19:43:14Z
Last change time
2024-12-13T18:01:26Z
Assigned to
No Owner
Creator
thelastmammoth
Moved to GitHub: dmd#18470 →

Comments

Comment #0 by thelastmammoth — 2012-09-16T19:43:14Z
(from my previous post: http://forum.dlang.org/thread/[email protected]#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) ?
Comment #1 by robert.schadek — 2024-12-13T18:01:26Z
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