qxLib
asserts.inl
Go to the documentation of this file.
1 /**
2 
3  @file asserts.inl
4  @author Khrapov
5  @date 7.01.2026
6  @copyright © Nick Khrapov, 2026. All right reserved.
7 
8 **/
9 
10 #if QX_WITH_DEBUG_ASSERTS
11  #define _QX_ASSERT_C(condition, category, ...) \
12  _QX_COMMON_ASSERT( \
13  condition, \
14  category, \
15  qx::assert_type::assert, \
16  _QX_ASSERT_AFTER_DEBUG_BREAK_FATAL, \
17  void, \
18  ##__VA_ARGS__)
19 #else
20  #define _QX_ASSERT_C(condition, category, ...) QX_EMPTY_MACRO
21 #endif
22 
23 #define _QX_EXPECT_ACTION(condition, category, action, ...) \
24  if (!QX_EXPECT_C(condition, category, ##__VA_ARGS__)) [[unlikely]] \
25  action; \
26  else \
27  QX_EMPTY_MACRO
28 
29 
30 #if QX_WITH_DEBUG_ASSERTS
31  #define _QX_ENSURE_C(condition, category, ...) \
32  _QX_COMMON_ASSERT( \
33  condition, \
34  category, \
35  qx::assert_type::ensure, \
36  _QX_ASSERT_AFTER_DEBUG_BREAK_NON_FATAL, \
37  void, \
38  ##__VA_ARGS__)
39 #else
40  #define _QX_ENSURE_C(condition, category, ...) QX_EMPTY_MACRO
41 #endif