Tatooine
map.h
Go to the documentation of this file.
1#ifndef TATOOINE_PREPROCESSOR_MAP_H
2#define TATOOINE_PREPROCESSOR_MAP_H
3//==============================================================================
4#include <tatooine/preprocessor/apply_f.h>
5#include <tatooine/preprocessor/apply_f2.h>
9#include <tatooine/preprocessor/num_args.h>
10//==============================================================================
11#define TATOOINE_PP_MAP(f, ...) \
12 TATOOINE_PP_IF(TATOOINE_PP_NOT_EMPTY_VARIADIC(__VA_ARGS__), \
13 TATOOINE_PP_MAP_I(f, __VA_ARGS__))
14// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
15#define TATOOINE_PP_MAP_I(f, ...) \
16 TATOOINE_PP_INVOKE(TATOOINE_PP_CONCAT(TATOOINE_PP_APPLY_F_, \
17 TATOOINE_PP_NUM_ARGS(__VA_ARGS__)), \
18 f, __VA_ARGS__)
19//------------------------------------------------------------------------------
20#define TATOOINE_PP_MAP2(f, ...) TATOOINE_PP_MAP2_I(f, __VA_ARGS__)
21// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
22#define TATOOINE_PP_MAP2_I(f, ...) \
23 TATOOINE_PP_INVOKE(TATOOINE_PP_CONCAT(TATOOINE_PP_APPLY_F2_, \
24 TATOOINE_PP_NUM_ARGS(__VA_ARGS__)), \
25 f, __VA_ARGS__)
26//==============================================================================
27#endif