[Bug 15] New: Problem with inner struct templates
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sun Mar 5 11:07:53 PST 2006
http://d.puremagic.com/bugzilla/show_bug.cgi?id=15
Summary: Problem with inner struct templates
Product: D
Version: 0.148
Platform: PC
OS/Version: Windows
Status: NEW
Severity: normal
Priority: P2
Component: DMD
AssignedTo: walter at digitalmars.com
ReportedBy: sean at f4.ca
Don's comment about how D templates are resolved during compilation instead of
optimization got me thinking whether the traditional get/set accessor method
for tuples could be replaced by a simple alias, which seems ideal as it doesn't
rely on inlining to make the resulting code efficient. What follows is an
attempt at this, first with a class, then with a struct. Note that the class
version compiles but the struct version breaks. I assume this is a bug?
C:\code\d>type test.d
void main()
{
ClassOf!(int) c = new ClassOf!(int)();
StructOf!(int) s;
int x;
c.ref!() = x;
x = c.ref!();
s.ref!() = x;
x = s.ref!();
}
class ClassOf(Type)
{
Type val;
template ref()
{
alias val ref;
}
}
template StructOf( Type )
{
struct StructOf
{
Type val;
template ref()
{
alias val ref;
}
}
}
C:\code\d>dmd test.d
test.d(10): this for val needs to be type StructOf not type StructOf
C:\code\d>
DStress test cases:
http://dstress.kuehne.cn/run/a/alias_31_A.d
http://dstress.kuehne.cn/run/a/alias_31_B.d
http://dstress.kuehne.cn/run/a/alias_31_C.d
http://dstress.kuehne.cn/run/a/alias_31_D.d
--
More information about the Digitalmars-d-bugs
mailing list