diff --git a/include/ylt/struct_pack/marco.h b/include/ylt/struct_pack/marco.h index 546ac6e9e..86d610b68 100644 --- a/include/ylt/struct_pack/marco.h +++ b/include/ylt/struct_pack/marco.h @@ -31,19 +31,14 @@ #define STRUCT_PACK_MAY_INLINE inline #endif -#if __has_cpp_attribute(likely) && __cplusplus >= 202002L +#if __has_cpp_attribute(likely) && __has_cpp_attribute(unlikely) #define SP_LIKELY(expr) (expr) [[likely]] -#elif __GNUC__ -#define SP_LIKELY(expr) (__builtin_expect(!!(expr), 1)) -#else -#define SP_LIKELY(expr) (expr) -#endif - -#if __has_cpp_attribute(unlikely) && __cplusplus >= 202002L #define SP_UNLIKELY(expr) (expr) [[unlikely]] #elif __GNUC__ +#define SP_LIKELY(expr) (__builtin_expect(!!(expr), 1)) #define SP_UNLIKELY(expr) (__builtin_expect(!!(expr), 0)) #else +#define SP_LIKELY(expr) (expr) #define SP_UNLIKELY(expr) (expr) #endif