12 lines
487 B
C
12 lines
487 B
C
|
#ifndef INC_UTIL_H
|
||
|
#define INC_UTIL_H
|
||
|
|
||
|
// This is wacky preprocessor magic that allows us to count the number of
|
||
|
// members of an enum. Unfortunately, it doesn't work with enum classes, so we
|
||
|
// have to use C-style enums.
|
||
|
#define CountedEnum(NAME, TYPE, ...) \
|
||
|
typedef enum { __VA_ARGS__ } NAME; \
|
||
|
static const size_t NAME##_COUNT = sizeof((int[]){__VA_ARGS__}) / sizeof(int);
|
||
|
|
||
|
#endif // INC_UTIL_H
|