source: doc/theses/rob_schluntz_MMath/examples/scope_guard.h @ 5cb2b8c

ADTarm-ehast-experimentalcleanup-dtorsenumforall-pointer-decayjacob/cs343-translationjenkins-sandboxnew-astnew-ast-unique-exprpthread-emulationqualifiedEnum
Last change on this file since 5cb2b8c was 67982887, checked in by Peter A. Buhr <pabuhr@…>, 6 years ago

specialize thesis directory-names

  • Property mode set to 100644
File size: 533 bytes
Line 
1#ifndef SCOPE_GUARD_H
2#define SCOPE_GUARD_H
3
4struct ScopeGuard {
5  void (*fn)(void *);
6  // Args args;
7};
8
9// forall(ttype Args, ttype Ret)
10// void ?{}(ScopeGuard(Args, Ret) * this) {
11void ?{}(ScopeGuard * this) {
12
13}
14
15// // inline
16// forall(ttype Args, ttype Ret)
17// void ?{}(ScopeGuard(Args, Ret) * this, Ret (*fn)(Args), Args args) {
18//   this->fn = fn;
19//   // this->args = args;
20// }
21
22// inline
23// forall(ttype Args, ttype Ret)
24// void ^?{}(ScopeGuard(Args, Ret) * this) {
25void ^?{}(ScopeGuard * this) {
26  this->fn(0);
27}
28
29#endif
Note: See TracBrowser for help on using the repository browser.