ECSTASY
All in the name
Loading...
Searching...
No Matches
foreach.hpp File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define PARENS   ()
 
#define EXPAND(...)   EXPAND4(EXPAND4(EXPAND4(EXPAND4(__VA_ARGS__))))
 
#define EXPAND4(...)   EXPAND3(EXPAND3(EXPAND3(EXPAND3(__VA_ARGS__))))
 
#define EXPAND3(...)   EXPAND2(EXPAND2(EXPAND2(EXPAND2(__VA_ARGS__))))
 
#define EXPAND2(...)   EXPAND1(EXPAND1(EXPAND1(EXPAND1(__VA_ARGS__))))
 
#define EXPAND1(...)   __VA_ARGS__
 
#define FOR_EACH_AGAIN()   FOR_EACH_HELPER
 
#define FOR_EACH_HELPER(macro, a1, ...)   macro(a1) __VA_OPT__(FOR_EACH_AGAIN PARENS(macro, __VA_ARGS__))
 
#define FOR_EACH(macro, ...)   __VA_OPT__(EXPAND(FOR_EACH_HELPER(macro, __VA_ARGS__)))
 

Detailed Description

Author
Andréas Leroux (andre.nosp@m.as.l.nosp@m.eroux.nosp@m.@epi.nosp@m.tech..nosp@m.eu)
Version
1.0.0
Date
2022-11-30

Definition in file foreach.hpp.

Macro Definition Documentation

◆ EXPAND

#define EXPAND (   ...)    EXPAND4(EXPAND4(EXPAND4(EXPAND4(__VA_ARGS__))))

Definition at line 17 of file foreach.hpp.

◆ EXPAND1

#define EXPAND1 (   ...)    __VA_ARGS__

Definition at line 21 of file foreach.hpp.

◆ EXPAND2

#define EXPAND2 (   ...)    EXPAND1(EXPAND1(EXPAND1(EXPAND1(__VA_ARGS__))))

Definition at line 20 of file foreach.hpp.

◆ EXPAND3

#define EXPAND3 (   ...)    EXPAND2(EXPAND2(EXPAND2(EXPAND2(__VA_ARGS__))))

Definition at line 19 of file foreach.hpp.

◆ EXPAND4

#define EXPAND4 (   ...)    EXPAND3(EXPAND3(EXPAND3(EXPAND3(__VA_ARGS__))))

Definition at line 18 of file foreach.hpp.

◆ FOR_EACH

#define FOR_EACH (   macro,
  ... 
)    __VA_OPT__(EXPAND(FOR_EACH_HELPER(macro, __VA_ARGS__)))

Definition at line 25 of file foreach.hpp.

◆ FOR_EACH_AGAIN

#define FOR_EACH_AGAIN ( )    FOR_EACH_HELPER

Definition at line 23 of file foreach.hpp.

◆ FOR_EACH_HELPER

#define FOR_EACH_HELPER (   macro,
  a1,
  ... 
)    macro(a1) __VA_OPT__(FOR_EACH_AGAIN PARENS(macro, __VA_ARGS__))

Definition at line 24 of file foreach.hpp.

◆ PARENS

#define PARENS   ()

Definition at line 15 of file foreach.hpp.