diff --git a/include/fast_float/constexpr_feature_detect.h b/include/fast_float/constexpr_feature_detect.h index 57b7d52..d4399b0 100644 --- a/include/fast_float/constexpr_feature_detect.h +++ b/include/fast_float/constexpr_feature_detect.h @@ -23,8 +23,10 @@ #if defined(__cpp_lib_is_constant_evaluated) && \ __cpp_lib_is_constant_evaluated >= 201811L #define FASTFLOAT_HAS_IS_CONSTANT_EVALUATED 1 +#define FASTFLOAT_CONSTEVAL consteval #else #define FASTFLOAT_HAS_IS_CONSTANT_EVALUATED 0 +#define FASTFLOAT_CONSTEVAL FASTFLOAT_CONSTEXPR14 #endif #if defined(__cpp_lib_byteswap) @@ -58,24 +60,10 @@ // For support attribute [[assume]] is declared in P1774 -#if 1 // TODO needs platform specific tests for this -#define FASTFLOAT_ASSUME(expr) -#elif defined(__cpp_attrubute_assume) +#if defined(__cpp_attrubute_assume) #define FASTFLOAT_ASSUME(expr) [[assume(expr)]] -#elif defined(__clang__) // needs testing -#define FASTFLOAT_ASSUME(expr) __builtin_assume(expr) -#elif defined(__GNUC__) && !defined(__ICC) // needs testing -#define FASTFLOAT_ASSUME(expr) \ - if (expr) { \ - } else { \ - __builtin_unreachable(); \ - } -#elif defined(__ICC) // needs testing -#define FASTFLOAT_ASSUME(expr) __assume(expr) -#elif defined(_MSC_VER) // needs testing -/* currently disable, because MSVC is generated slower code when enabled, -it's probably reason why MSVC doesnt have [[assume]] */ -#define FASTFLOAT_ASSUME(expr) /*__assume(expr)*/ +#else +#define FASTFLOAT_ASSUME(expr) #endif #endif // FASTFLOAT_CONSTEXPR_FEATURE_DETECT_H