🔁

【競プロ】高級repマクロ

に公開

Pythonの for i in range(...) をC++でも書けるようにするマクロ

usage
+---------------------------+---------------------------+
|  Python range syntax      |  Rich rep macro (C++)     |
+---------------------------+---------------------------+
|  for i in range(b)        |  rep(i, b)                |
|  for i in range(a, b)     |  rep(i, a, b)             |
|  for i in range(a, b, c)  |  rep(i, a, b, c)          |
+---------------------------+---------------------------+
code
#define REP1(i, b) for (int i = 0; i < (b); ++i)
#define REP2(i, a, b) for (int i = (a); i < (b); ++i)
#define REP3(i, a, b, c) for (int i = (a); (c) > 0 ? i < (b) : i > (b); i += (c))
#define REP_SELECT(_1, _2, _3, _4, REP_NAME, ...) REP_NAME
#define rep(...) REP_SELECT(__VA_ARGS__, REP3, REP2, REP1)(__VA_ARGS__)

Discussion