On Thursday, 5 December 2013 at 01:07:19 UTC, Timothee Cour wrote:
A1.
Is there a (clever?) way to achieve the following using a
single function
call?
You could (mis)use destructors.
=============
struct chdir_scoped {
string olddir;
this(string newdir) {
olddir = "bar";
writeln("chdir to "~newdir);
}
~this() {
writeln("chdir back to "~olddir);
}
}
int main() {
auto x = chdir_scoped("foo");
writeln("doing work in foo");
return 0;
}
=============
Output:
chdir to foo
doing work in foo
chdir back to bar
=============
Feels hacky to me, since "x" is not used anywhere.