5#define NS_EXPANDED(pre, post) pre##_##post
6#define NS(pre, post) NS_EXPANDED(pre, post)
8#define PRIVATE(name) NS(__private, name)
11 #define DEBUG_UNUSED(ident) ident __attribute__((unused))
13 #define DEBUG_UNUSED(ident)
16#define UNUSED(ident) ident __attribute__((unused))
18#define LIKELY(x) __builtin_expect(!!(x), 1)
20#define EXPAND(...) __VA_ARGS__
24 char UNUSED(_dummy_cpp_object_size_compatibility);
40#if SIZE_MAX > 0xFFFFFFFF
46static inline bool is_power_of_2(
size_t x) {
return x != 0 && (x & (x - 1)) == 0; }
51 return index & (capacity - 1);
54#define FORCE_INLINE inline __attribute__((always_inline))
static bool is_power_of_2(size_t x)
static size_t next_power_of_2(size_t x)
static size_t modulus_power_of_2_capacity(size_t index, size_t capacity)
#define DEBUG_ASSERT(expr)