[Issue 4967] New: { } struct literals not documented, and not working
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Fri Oct 1 06:25:07 PDT 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4967
Summary: { } struct literals not documented, and not working
Product: D
Version: D2
Platform: x86
OS/Version: Windows
Status: NEW
Severity: major
Priority: P2
Component: DMD
AssignedTo: nobody at puremagic.com
ReportedBy: ah08010-d at yahoo.com
--- Comment #0 from Austin Hastings <ah08010-d at yahoo.com> 2010-10-01 06:24:48 PDT ---
I unthinkingly created a struct literal like S s = { 9 }; and it worked (which,
now that I'm complaining about it, I can't find documented in the chm).
But this format doesn't appear to initialize any other fields:
$ cat test.d
import std.stdio;
struct S {
int key;
int x = 1;
void dump() {
writefln("%s %s", key, x);
}
}
void main() {
S s1;
s1.dump;
S s2 = { 9 };
s2.dump;
}
This code prints:
$ dmd -run test.d
0 1
9 1310436
Note the trash in the second variable. I am not sure what the correct solution
is - should struct literals require ctor style, or use static-initializer
format and an implicit copy? - but I would certainly have appreciated a
warning, if nothing else, when I started compiling code like this.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list