Yume Project
3.0
Touhou-inspired Danmaku game made in C only
Chargement...
Recherche...
Aucune correspondance
macro.h
Aller à la documentation de ce fichier.
1
#pragma once
2
3
#define MACRO_CONCAT_(a, b) a ## b
4
#define MACRO_CONCAT(a, b) MACRO_CONCAT_(a, b)
5
#define MACRO_ADDLINENUM(a) MACRO_CONCAT(a, __LINE__)
6
#define MACRO_SIZEOF_ARRAY(arr) (sizeof(arr)/sizeof(*(arr)))
7
#define MACRO_EXPAND(...) __VA_ARGS__
8
#define MACRO_EMPTY()
9
#define MACRO_DEFER(id) id MACRO_EMPTY()
10
11
#define MACRO_HASARGS(...) \
12
MACRO_EXPAND(MACRO_DEFER(MACRO_ARGCOUNT_HELPER)( \
13
_, ##__VA_ARGS__, MACRO_HASARGS_RSEQ_N() \
14
))
15
16
#define MACRO_HASARGS_RSEQ_N() \
17
1, 1, 1, 1, 1, 1, 1, 1, \
18
1, 1, 1, 1, 1, 1, 1, 1, \
19
1, 1, 1, 1, 1, 1, 1, 1, \
20
1, 1, 1, 1, 1, 1, 1, 1, 0,
21
22
23
#define MACRO_ARGCOUNT_HELPER(_0, \
24
__1, __2, __3, __4, __5, __6, __7, __8, \
25
__9, _10, _11, _12, _13, _14, _15, _16, \
26
_17, _18, _19, _20, _21, _22, _23, _24, \
27
_25, _26, _27, _28, _29, _30, _31, _32, N, ...) N
28
29
30
#define MACRO_OVERLOAD_HASARGS(base, ...) \
31
MACRO_CONCAT(base, MACRO_HASARGS(__VA_ARGS__))
lib
internal
core
macro.h
Généré par
1.16.1