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.

Reply via email to