17#define _(...) ::Ase::ase_gettext (__VA_ARGS__)
22#define APPLY_IDL_PROPERTY(lvalue, rvalue) ASE_OBJECT_APPLY_IDL_PROPERTY(lvalue, rvalue)
25#define ARRAY_SIZE(array) ASE_ARRAY_SIZE (array)
28#define assert_return(expr, ...) do { if (expr) [[likely]] break; ::Ase::assertion_failed (#expr); return __VA_ARGS__; } while (0)
30#define assert_return_unreached(...) do { ::Ase::assertion_failed (""); return __VA_ARGS__; } while (0)
32#define assert_warn(expr) do { if (expr) [[likely]] break; ::Ase::assertion_failed (#expr); } while (0)
34#define assert_paranoid(expr) do { if (expr) [[likely]] break; ::Ase::assertion_failed (#expr); } while (0)
36#define assert_unreached() __builtin_unreachable()
38#define paranoid(expr) ASE_PARANOID (expr)
41#define if_constexpr if constexpr
44#define CQUOTE(str) ASE_CQUOTE(str)
53#define MAX(a,b) ((a) >= (b) ? (a) : (b))
56#define MIN(a,b) ((a) <= (b) ? (a) : (b))
59#define CLAMP(v,mi,ma) ((v) < (mi) ? (mi) : ((v) > (ma) ? (ma) : (v)))
62#define ISLIKELY(cond) ASE_ISLIKELY (cond)
64#define UNLIKELY(cond) ASE_UNLIKELY (cond)
67#define ALIGNMENT16(pointer) ASE_ALIGNMENT16 (pointer)
69#define ALIGNED16(pointer) ASE_ALIGNED16 (pointer)
72#define return_unless(cond, ...) ASE_RETURN_UNLESS (cond, __VA_ARGS__)
75#define STRING_VECTOR_FROM_ARRAY(ConstCharArray) ASE_STRING_VECTOR_FROM_ARRAY(ConstCharArray)
78#define TEST_INTEGRITY(FUNC) static void FUNC() __attribute__ ((__cold__, __unused__)); \
79 static ::Ase::Test::IntegrityCheck ASE_CPP_PASTE2 (__Ase__Test__IntegrityCheck__line, __LINE__) { #FUNC, FUNC, 'I' }
82#define TEST_BENCHMARK(FUNC) static void FUNC() __attribute__ ((__cold__, __unused__)); \
83 static ::Ase::Test::IntegrityCheck ASE_CPP_PASTE2 (__Ase__Test__IntegrityCheck__line, __LINE__) { #FUNC, FUNC, 'B' }
87#ifdef ASE_ENABLE_DEBUG
88constexpr const bool __DEV__ =
true;
90constexpr const bool __DEV__ =
false;
97 using TestFunc = void (*) ();
99 name_ (name), func_ (func)
104 static void deferred_init();
The Anklang C++ API namespace.
uint64_t uint64
A 64-bit unsigned integer, use PRI*64 in format strings.
int32_t int32
A 32-bit signed integer.
int16_t int16
A 16-bit signed integer.
uint8_t uint8
An 8-bit unsigned integer.
int8_t int8
An 8-bit signed integer.
int64_t int64
A 64-bit unsigned integer, use PRI*64 in format strings.
uint32_t unichar
A 32-bit unsigned integer used for Unicode characters.
uint16_t uint16
A 16-bit unsigned integer.
uint32_t uint32
A 32-bit unsigned integer.