ECSTASY
All in the name
Loading...
Searching...
No Matches
foreach.hpp
Go to the documentation of this file.
1
11
12#ifndef UTIL_SERIALIZATION_FOREACH_HPP_
13#define UTIL_SERIALIZATION_FOREACH_HPP_
14
15#define PARENS ()
16
17#define EXPAND(...) EXPAND4(EXPAND4(EXPAND4(EXPAND4(__VA_ARGS__))))
18#define EXPAND4(...) EXPAND3(EXPAND3(EXPAND3(EXPAND3(__VA_ARGS__))))
19#define EXPAND3(...) EXPAND2(EXPAND2(EXPAND2(EXPAND2(__VA_ARGS__))))
20#define EXPAND2(...) EXPAND1(EXPAND1(EXPAND1(EXPAND1(__VA_ARGS__))))
21#define EXPAND1(...) __VA_ARGS__
22
23#define FOR_EACH_AGAIN() FOR_EACH_HELPER
24#define FOR_EACH_HELPER(macro, a1, ...) macro(a1) __VA_OPT__(FOR_EACH_AGAIN PARENS(macro, __VA_ARGS__))
25#define FOR_EACH(macro, ...) __VA_OPT__(EXPAND(FOR_EACH_HELPER(macro, __VA_ARGS__)))
26
27#endif /* !UTIL_SERIALIZATION_FOREACH_HPP_ */