写経中にstd::scope_exitというものが出てきたが、(本が書かれている時点ではC++20に公式に取り込まれる予定だったみたいだが)C++20ではまだ取り込まれていない模様。
experimental/scopeというとこで実験的に入っているっぽい。
#include <experimental/scope>してstd::experimental::scope_exitすると使える模様。
experimentalなので何かあるかもしれないが写経はこれで使ってみる。
#include <iostream>
#include <experimental/scope>
void example() {
auto cleanup = std::experimental::scope_exit([] {
std::cout << "Scope exited.\n";
});
std::cout << "Doing work inside the scope.\n";
}
int main() {
example();
return 0;
}
な感じ。