diff --git a/peglib.h b/peglib.h index 6aee99f..a04dfad 100644 --- a/peglib.h +++ b/peglib.h @@ -13,6 +13,9 @@ #include #if __has_include() #include +#define CPPPEGLIB_HAS_CHARCONV true +#else +#define CPPPEGLIB_HAS_CHARCONV false #endif #include #include @@ -340,12 +343,7 @@ inline std::string resolve_escape_sequence(const char *s, size_t n) { template T token_to_number_(std::string_view sv) { T n = 0; -#if __has_include() - if constexpr (!std::is_floating_point::value) { - std::from_chars(sv.data(), sv.data() + sv.size(), n); -#else - if constexpr (false) { -#endif + if constexpr (CPPPEGLIB_HAS_CHARCONV && !std::is_floating_point::value) { std::from_chars(sv.data(), sv.data() + sv.size(), n); } else { auto s = std::string(sv);