25#ifndef TEMP_FAILURE_RETRY
26#define TEMP_FAILURE_RETRY(exp) \
31 } while (_rc == -1 && errno == EINTR); \
45#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
46 TypeName(const TypeName&) = delete; \
47 void operator=(const TypeName&) = delete
55#define DISALLOW_IMPLICIT_CONSTRUCTORS(TypeName) \
56 TypeName() = delete; \
57 DISALLOW_COPY_AND_ASSIGN(TypeName)
73template <
typename T,
size_t N>
76#define arraysize(array) (sizeof(ArraySizeHelper(array)))
78#define SIZEOF_MEMBER(t, f) sizeof(std::declval<t>().f)
83#define LIKELY( exp ) (__builtin_expect( (exp) != 0, true ))
84#define UNLIKELY( exp ) (__builtin_expect( (exp) != 0, false ))
86#define WARN_UNUSED __attribute__((warn_unused_result))
92template <
typename... T>
99#define ATTRIBUTE_UNUSED __attribute__((__unused__))
133#ifndef FALLTHROUGH_INTENDED
134#define FALLTHROUGH_INTENDED [[clang::fallthrough]]
139#define ABI_STRING "arm"
140#elif defined(__aarch64__)
141#define ABI_STRING "arm64"
142#elif defined(__i386__)
143#define ABI_STRING "x86"
144#elif defined(__riscv)
145#define ABI_STRING "riscv64"
146#elif defined(__x86_64__)
147#define ABI_STRING "x86_64"
char(& ArraySizeHelper(T(&array)[N]))[N]
void UNUSED(const T &...)
Definition: macros.h:93