* fix unreachable code warning when <charconv> header is present

* update macro name
pull/164/head
Elliot 3 years ago committed by GitHub
parent b5ee8c19df
commit 3d68799d9c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 15
      peglib.h

@ -13,6 +13,9 @@
#include <cctype>
#if __has_include(<charconv>)
#include <charconv>
#define CPPPEGLIB_HAS_CHARCONV true
#else
#define CPPPEGLIB_HAS_CHARCONV false
#endif
#include <cstring>
#include <functional>
@ -340,15 +343,13 @@ inline std::string resolve_escape_sequence(const char *s, size_t n) {
template <typename T> T token_to_number_(std::string_view sv) {
T n = 0;
#if __has_include(<charconv>)
if constexpr (!std::is_floating_point<T>::value) {
if constexpr (CPPPEGLIB_HAS_CHARCONV && !std::is_floating_point<T>::value) {
std::from_chars(sv.data(), sv.data() + sv.size(), n);
return n;
} else {
auto s = std::string(sv);
std::istringstream ss(s);
ss >> n;
}
#endif
auto s = std::string(sv);
std::istringstream ss(s);
ss >> n;
return n;
}

Loading…
Cancel
Save