可変個引数マクロへの引数を逆にするにはどうすればよいですか?たとえば、
#define REVERSE(...) ???
REVERSE(A,B,C) // expands to C,B,A
私の目標は、前と後ろの議論を分離することです。
#define APPLY(FUN,...) FUN(__VA_ARGS__)
#define FRONT(FIRST,...) FIRST
#define REST(FIRST,...) __VA_ARGS__
#define MOST(...) APPLY(REVERSE,APPLY(REST,REVERSE(__VA_ARGS__)))
#define BACK(...) APPLY(FRONT,REVERSE_ARGUMENTS(__VA_ARGS__))
FRONT(A,B,C) // expands to A
REST(A,B,C) // expands to B,C
MOST(A,B,C) // expands to A,B
BACK(A,B,C) // expands to C