@@ -279,7 +279,7 @@ report_parse_error(UC const *p, parse_error error) {
279279
280280// Assuming that you use no more than 19 digits, this will
281281// parse an ASCII string.
282- template <typename UC>
282+ template <bool basic_json_fmt, typename UC>
283283fastfloat_really_inline FASTFLOAT_CONSTEXPR20 parsed_number_string_t <UC>
284284parse_number_string (UC const *p, UC const *pend,
285285 parse_options_t <UC> options) noexcept {
@@ -294,13 +294,13 @@ parse_number_string(UC const *p, UC const *pend,
294294 // C++17 20.19.3.(7.1) explicitly forbids '+' sign here
295295 if ((*p == UC (' -' )) ||
296296 (uint64_t (fmt & chars_format::allow_leading_plus) &&
297- !uint64_t (fmt & detail:: basic_json_fmt) && *p == UC (' +' ))) {
297+ !basic_json_fmt && *p == UC (' +' ))) {
298298 ++p;
299299 if (p == pend) {
300300 return report_parse_error<UC>(
301301 p, parse_error::missing_integer_or_dot_after_sign);
302302 }
303- if (uint64_t (fmt & detail:: basic_json_fmt) ) {
303+ if (basic_json_fmt) {
304304 if (!is_integer (*p)) { // a sign must be followed by an integer
305305 return report_parse_error<UC>(p,
306306 parse_error::missing_integer_after_sign);
@@ -329,7 +329,7 @@ parse_number_string(UC const *p, UC const *pend,
329329 UC const *const end_of_integer_part = p;
330330 int64_t digit_count = int64_t (end_of_integer_part - start_digits);
331331 answer.integer = span<UC const >(start_digits, size_t (digit_count));
332- if (uint64_t (fmt & detail:: basic_json_fmt) ) {
332+ if (basic_json_fmt) {
333333 // at least 1 digit in integer part, without leading zeros
334334 if (digit_count == 0 ) {
335335 return report_parse_error<UC>(p, parse_error::no_digits_in_integer_part);
@@ -358,7 +358,7 @@ parse_number_string(UC const *p, UC const *pend,
358358 answer.fraction = span<UC const >(before, size_t (p - before));
359359 digit_count -= exponent;
360360 }
361- if (uint64_t (fmt & detail:: basic_json_fmt) ) {
361+ if (basic_json_fmt) {
362362 // at least 1 digit in fractional part
363363 if (has_decimal_point && exponent == 0 ) {
364364 return report_parse_error<UC>(p,
0 commit comments