http://d.puremagic.com/issues/show_bug.cgi?id=6470
Summary: postblits not called on arrays of structs Product: D Version: D1 & D2 Platform: All OS/Version: All Status: NEW Keywords: wrong-code Severity: major Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: mrmoc...@gmx.de --- Comment #0 from Trass3r <mrmoc...@gmx.de> 2011-08-11 17:05:46 PDT --- import std.stdio; struct F { long m; this(long arg) { m = arg; writeln("\tconstructed F ", arg); } ~this() { writeln("\tdestructed F ", m); } this(this) { writeln("\tcopied F ", m); } } void main() { F a = F(1); F b = F(2); write("F[] arr = [a, b];\n"); F[] arr = [a, b]; write("F[] arr3;\narr3 ~= a;\n"); F[] arr3; arr3 ~= a; write("F[2] arr2 = [a, b];\n"); F[2] arr2 = [a, b]; } Output: constructed F 1 constructed F 2 F[] arr = [a, b]; // no postblit called (no destructor either, see bug 2834) F[] arr3; arr3 ~= a; copied F 1 // only here it is called F[2] arr2 = [a, b]; // no postblit called destructed F 2 // b from arr2 destructed F 1 // a from arr2 destructed F 2 // b destructed F 1 // a Note that this issue ahs to be taken into consideration as well: http://www.digitalmars.com/d/archives/digitalmars/D/Static_array_initialization_113536.html -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------