18 template <
typename FEnd>
19 class [[ nodiscard ]] ScopeDoer
28 ScopeDoer(
const ScopeDoer&) =
delete;
41 ScopeDoer(ScopeDoer&& oth) :
42 fEnd(std::move(oth.fEnd)),
43 undoAtEnd(oth.undoAtEnd)
50 template <
typename FBegin>
51 ScopeDoer(FBegin fBegin,
60 ScopeDoer(FEnd fEnd) :
89 ScopeDoer([&ref,oldVal]()
auto getScopeChangeVar(T &ref, const TV &val)
Set a variable for the scope, change it back at the end.