yes, for classes you can use scoped: import std.stdio; import std.typecons : scoped; class A { void saySomething() { writeln("Hi from A"); } ~this() { writeln("Destruct A"); } }
void main() { with(scoped!A()) { saySomething(); writeln("something"); } writeln("Hello D"); } On Tue, Feb 27, 2018 at 5:25 PM, Jonathan via Digitalmars-d-learn < digitalmars-d-learn@puremagic.com> wrote: > On Tuesday, 27 February 2018 at 16:18:43 UTC, Stefan Koch wrote: > >> On Tuesday, 27 February 2018 at 16:17:20 UTC, Jonathan wrote: >> >>> I know Python's `with` statement can be used to have an automatic close >>> action: >>> ``` >>> with open("x.txt") as file: >>> #do something with file >>> #`file.close()` called automatically >>> ``` >>> >>> I know D's `with` statement does something different but is there some >>> sort of equivalent? >>> >> >> In this case with(File("bla")) >> will do the same. >> > > Oh really, cool. > > Is this just because the scope of the file variable will end and thus its > `~this`? > >