[Issue 2916] New: struct constructor use syntax undocumented
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Thu Apr 30 03:09:03 PDT 2009
http://d.puremagic.com/issues/show_bug.cgi?id=2916
Summary: struct constructor use syntax undocumented
Product: D
Version: 2.029
Platform: PC
OS/Version: Windows
Status: NEW
Severity: normal
Priority: P2
Component: DMD
AssignedTo: bugzilla at digitalmars.com
ReportedBy: steve.teale at britseyeview.com
This is probably just a documentation issue.
struct A
{
int a;
this(int n) { a = n; }
}
struct B
{
int b;
this(int n) { b = n; }
}
struct C
{
A a;
B b;
this(int n, int m)
{
a = A(n);
b = B(m);
}
}
struct D
{
A a;
B b;
this(int n, int m)
{
a(n);
b(m);
}
}
void main()
{
C c = C(2, 3);
writefln("C:a = %d, C:b = %d", c.a.a, c.b.b);
D d = D(2, 3);
writefln("D:a = %d, D:b = %d", d.a.a, d.b.b);
}
D is essentially the same as C, but uses a(n) instead of a = A(n). Both
compile, but the former has no effect on the A member.
Output:
C:a = 2, C:b = 3
D:a = 0, D:b = 0
The documentation should mention the correct syntax, and explain what a(n)
means, or the compiler should object to that form.
--
More information about the Digitalmars-d-bugs
mailing list