@@ -279,7 +279,7 @@ report_parse_error(UC const *p, parse_error error) {
279
279
280
280
// Assuming that you use no more than 19 digits, this will
281
281
// parse an ASCII string.
282
- template <typename UC>
282
+ template <bool basic_json_fmt, typename UC>
283
283
fastfloat_really_inline FASTFLOAT_CONSTEXPR20 parsed_number_string_t <UC>
284
284
parse_number_string (UC const *p, UC const *pend,
285
285
parse_options_t <UC> options) noexcept {
@@ -294,13 +294,13 @@ parse_number_string(UC const *p, UC const *pend,
294
294
// C++17 20.19.3.(7.1) explicitly forbids '+' sign here
295
295
if ((*p == UC (' -' )) ||
296
296
(uint64_t (fmt & chars_format::allow_leading_plus) &&
297
- !uint64_t (fmt & detail:: basic_json_fmt) && *p == UC (' +' ))) {
297
+ !basic_json_fmt && *p == UC (' +' ))) {
298
298
++p;
299
299
if (p == pend) {
300
300
return report_parse_error<UC>(
301
301
p, parse_error::missing_integer_or_dot_after_sign);
302
302
}
303
- if (uint64_t (fmt & detail:: basic_json_fmt) ) {
303
+ if (basic_json_fmt) {
304
304
if (!is_integer (*p)) { // a sign must be followed by an integer
305
305
return report_parse_error<UC>(p,
306
306
parse_error::missing_integer_after_sign);
@@ -329,7 +329,7 @@ parse_number_string(UC const *p, UC const *pend,
329
329
UC const *const end_of_integer_part = p;
330
330
int64_t digit_count = int64_t (end_of_integer_part - start_digits);
331
331
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) {
333
333
// at least 1 digit in integer part, without leading zeros
334
334
if (digit_count == 0 ) {
335
335
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,
358
358
answer.fraction = span<UC const >(before, size_t (p - before));
359
359
digit_count -= exponent;
360
360
}
361
- if (uint64_t (fmt & detail:: basic_json_fmt) ) {
361
+ if (basic_json_fmt) {
362
362
// at least 1 digit in fractional part
363
363
if (has_decimal_point && exponent == 0 ) {
364
364
return report_parse_error<UC>(p,
0 commit comments