aboutsummaryrefslogtreecommitdiff
path: root/macro.h
diff options
context:
space:
mode:
Diffstat (limited to 'macro.h')
-rw-r--r--macro.h16
1 files changed, 9 insertions, 7 deletions
diff --git a/macro.h b/macro.h
index ae69ddd3..0057df25 100644
--- a/macro.h
+++ b/macro.h
@@ -78,18 +78,20 @@
/* Declare destructor */
#define FREE_F(T) int FREE(T) (T* this)
+/* generate reusable internal symbol */
+#define __INTER(s) TP3(__, s, __internal)
-/*
- * Iterator macros.
- */
-#define FOR(T, var, set) for( \
- BEG_ ## T (var, set); \
- END_ ## T (var, set); \
- NXT_ ## T (var, set))
+/* Iterator macros. */
+#define FOR(CONT_T, T, var, set) \
+ PRE_FOR_ ## CONT_T (T, var, set); \
+ for( BEG_ ## CONT_T (T, var, set); \
+ END_ ## CONT_T (T, var, set); \
+ NXT_ ## CONT_T (T, var, set))
/* Example int implementation
* FOR(int, i, 10) { } */
+#define PRE_FOR_int(i, set)
#define BEG_int(i, set) int i = 0
#define NXT_int(i, set) i++
#define END_int(i, set) i < set