On Tuesday, 1 April 2025 at 17:33:02 UTC, Ali Çehreli wrote:
On 4/1/25 10:08 AM, Mike Parker wrote:
> ```
> scope ctx = new Context;
> ```
>
> This will allocate the class instance on the stack so the
destructor
> will be called when the scope exits.
Another option is to call the destructor explicitly through
destroy():
import std.stdio;
class C {
~this() {
writeln("Goodbye");
}
}
void foo() {
auto c = new C();
scope (exit) {
destroy(c); // <-- HERE
}
}
void main() {
writeln("Calling foo");
foo();
writeln("Exiting main");
}
Ali
Thanks! I will try this scope(exit) trick in order to pop the
context internally, these contexts hold local variable
definitions so of course I would want to pop them.