The idea for scope-exit came from Andrei Alexandrescu. See https://dlang.org/articles/exception-safe.html
He demonstrated it with C++ templates, but the D one is far more straightforward.