On Tue, 26 May 2009 21:20:41 -0400, dsimcha <[email protected]> wrote:
import std.stdio;
struct RC {
uint N;
this(this) {
writeln("Postblit: ", N);
}
~this() {
writeln("D'tor: ", N);
}
}
RC fun() {
writeln("Doing stuff...");
return RC(3);
}
void main() {
RC foo = RC(1);
writeln("Calling fun()...");
foo = fun();
writeln("Exiting...");
}
Output:
Calling fun()...
Doing stuff...
D'tor: 1
Exiting...
D'tor: 3
Would it be feasible to require that, when a struct is being
destructively
assigned the return value of a function, the d'tor is called for the old
contents before the function that provides the return value is called
instead
of calling it after?
What if fun throws an exception?
-Steve