Simplify parsing numeric arguments with .scan #65
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Limitations due to portability :
from_chars
for parsing integer numbers. To do so, I bumped required GCC version to 8.x and required Clang/libc++ version to 7.x.from_chars
behavior for parsing floating-point numbers withstrtod
, but this function is locale-aware.NAN(char_sequence)
(signal NaN, but should be parsed as quiet NaN) may fail to parsed.Caveats:
base == 0
case forfrom_chars
; integer format detection for'i'
shape is done by hand.+
sign is not allowed, but this is a result of sticking withfrom_chars
's grammar.range_error
forERANGE
andstd::errc::result_out_of_range
, unlikestoi
andstod
which throwout_of_range
. Our choice is correct here.fixes: #63