diff options
Diffstat (limited to 'include/rodeo/common.h')
| -rw-r--r-- | include/rodeo/common.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/include/rodeo/common.h b/include/rodeo/common.h new file mode 100644 index 0000000..886a82c --- /dev/null +++ b/include/rodeo/common.h @@ -0,0 +1,20 @@ + +#define mrodeo_name_concat(prefix, suffix) prefix##suffix + +#define mrodeo_macrovar(prefix) mrodeo_name_concat(prefix##_, __LINE__) + +#define mrodeo_defer_do(start, end) \ + for( \ + int mrodeo_macrovar(_macrovar_) = (start, 0); \ + !mrodeo_macrovar(_macrovar_); \ + (mrodeo_macrovar(_macrovar_) += 1), end \ + ) \ + +#define \ +mrodeo_vargs_do(final_arg) \ + va_list vargs; \ + mrodeo_defer_do( \ + va_start(vargs, final_arg), \ + va_end(vargs) \ + ) \ + |
