source: doc/rob_thesis/examples/scope_guard.h@ 293377c

ADT aaron-thesis arm-eh ast-experimental cleanup-dtors deferred_resn demangler enum forall-pointer-decay jacob/cs343-translation jenkins-sandbox new-ast new-ast-unique-expr new-env no_list persistent-indexer pthread-emulation qualifiedEnum resolv-new with_gc
Last change on this file since 293377c was 9c14ae9, checked in by Rob Schluntz <rschlunt@…>, 8 years ago

add thesis source

  • 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.