http://d.puremagic.com/issues/show_bug.cgi?id=4247
bearophile_h...@eml.cc changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bearophile_h...@eml.cc --- Comment #2 from bearophile_h...@eml.cc 2010-09-11 07:00:37 PDT --- (In reply to comment #1) > Also, since when are structs allowed to be allocated on the heap? TDPL > explicitly states that structs have scoped lifetime. I double TDPL says this. And if it says so, then it's wrong. TDPL is not a religious book. > You cannot override this. See page 244 in TDPL. The reason given at page 244 is that all type needs a statically defined init. On the other hand the need to allocate a struct on the heap with no arguments is real, and the current workarounds look bad for a nice language as D2. This small program shows that you can create a S2 on the stack: struct S1 {} struct S2 { this(int) {} } void main() { S1 s1a; auto s1b = new S1; S2 s2a; // OK auto s2b = new S2; // ERR } So I think "new S2;" may just create the same struct that "S2 s2a;" creates, but allocate it on the heap instead of the stack. I think this is a solution. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------