halcheck 1.0
Loading...
Searching...
No Matches
pp.hpp
1#ifndef HALCHECK_LIB_PP_HPP
2#define HALCHECK_LIB_PP_HPP
3
14#define HALCHECK_EMPTY
15
20#define HALCHECK_EXPAND(x) x
21
22#define HALCHECK_CAT_HELPER(x, y) x##y
23
28#define HALCHECK_CAT(x, y) HALCHECK_CAT_HELPER(x, y)
29
30#define HALCHECK_1ST_HELPER(x, ...) x
31
36#define HALCHECK_1ST(...) HALCHECK_EXPAND(HALCHECK_1ST_HELPER(__VA_ARGS__, HALCHECK_EMPTY))
37
38#define HALCHECK_2ND_HELPER(x, y, ...) y
39
44#define HALCHECK_2ND(...) HALCHECK_EXPAND(HALCHECK_2ND_HELPER(__VA_ARGS__, HALCHECK_EMPTY, HALCHECK_EMPTY))
45
46#define HALCHECK_3RD_HELPER(x, y, z, ...) z
47
52#define HALCHECK_3RD(...) \
53 HALCHECK_EXPAND(HALCHECK_3RD_HELPER(__VA_ARGS__, HALCHECK_EMPTY, HALCHECK_EMPTY, HALCHECK_EMPTY))
54
55#if defined(HALCHECK_DOXYGEN) || __cplusplus >= 201703L
60#define HALCHECK_NODISCARD [[nodiscard]]
61#else
62#define HALCHECK_NODISCARD
63#endif
64
65#if defined(HALCHECK_DOXYGEN) || __cplusplus >= 201703L
70#define HALCHECK_INLINE_CONSTEXPR inline constexpr
71#else
72#define HALCHECK_INLINE_CONSTEXPR static const
73#endif
74
75#endif