Daniel Lemire f1ea4556f9 Split default path into verbatim separator-free scanner
PR #369 gated the digit-separator/prefix feature on a compile-time
has_separator flag and claimed the has_separator==false instantiation
"compiles to exactly the same code as if the feature did not exist".
Instruction-count measurement (benchmark i/f, deterministic +/- 0.0%)
disproved this: routing the default path through the shared, restructured
body cost GCC 14 ~1.5-2.3 i/f on short doubles, a reproducible regression
on mesh/double (+0.77 i/f ASCII, +1.35 UTF-16) even as canada improved.

Fix: the has_separator==false instantiation now delegates to
parse_number_string_nosep, a verbatim copy of the original separator-free
scanner, so the default path's codegen is byte-for-byte the pre-feature
parser. The shared parse_number_string body becomes separator-only (the
dead !has_separator branches are removed). The inaccurate doc comment is
corrected.

Measured vs pre-feature baseline (34164f5), instructions per float:
  canada/f64 ASCII  242.32 -> 238.87   (PR: 240.87)
  canada/f64 UTF16  251.05 -> 241.81   (PR: 245.79)
  mesh/f64   ASCII  107.69 -> 107.57   (PR: 108.46, +0.77 regression)
  mesh/f64   UTF16  110.10 -> 109.74   (PR: 111.45, +1.35 regression)
All eight fastfloat rows now match or beat both the baseline and the PR;
the mesh/double regression is eliminated. All 14 ctest suites pass.
2026-07-13 11:10:05 -04:00
..
ascii_number.h Split default path into verbatim separator-free scanner 2026-07-13 11:10:05 -04:00
bigint.h formatted code 2024-12-01 16:39:28 +01:00
constexpr_feature_detect.h adding FASTFLOAT_IF_CONSTEXPR17 2025-03-09 17:10:55 -04:00
decimal_to_binary.h better wording. 2025-02-06 00:16:28 -05:00
digit_comparison.h Remove <algorithm> include and replace std::min with ternary operators 2026-04-16 17:17:19 +00:00
fast_float.h Fix spelling 2026-06-02 15:30:37 +01:00
fast_table.h remove out-of-line defns of constexpr static data members under c++17 2024-08-30 10:30:40 -05:00
float_common.h Keep the digit-separator feature off the default hot path 2026-06-21 11:27:39 +09:00
parse_number.h Keep the digit-separator feature off the default hot path 2026-06-21 11:27:39 +09:00