Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Uses two extensions cleanup, Blocks
- static inline void defer_cleanup(void (^*b)(void)) { (*b)(); }
- #define defer_merge(a,b) a##b
- #define defer_varname(a) defer_merge(defer_scopevar_, a)
- #define defer __attribute__((cleanup(defer_cleanup))) void (^defer_varname(__COUNTER__))(void) =
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement