[Issue 6499] [GSoC] Destructor not called on object returned by method.
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Tue Aug 16 06:18:16 PDT 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6499
Cristi Cobzarenco <cristi.cobzarenco at gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |REOPENED
Resolution|FIXED |
--- Comment #3 from Cristi Cobzarenco <cristi.cobzarenco at gmail.com> 2011-08-16 06:18:13 PDT ---
Thanks for the fix Kenji. However, this still doesn't work if bar() is a
template function, i.e:
struct Bar {
string m = "<not set>";
this( string s ) { writeln( "Constructor - ", m = s ); }
this( this ) { writeln( "Postblit - ", m ); }
~this() { writeln( "Destructor - ", m ); }
// NOTE: bar is a template, otherwise it works
Bar bar()() { return Bar( "bar" ); }
}
Bar foo() { return Bar( "foo" ); }
void main() {
foo().bar();
}
Outputs:
Constructor - foo
Constructor - bar
Destructor - bar
Interestingly, this time it's the one returned by foo() that doesn't get
destroyed, rather than the one returned by bar().
--
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