0.4
Pre-release
Pre-release
Planned to be the last 0.x release before 1.0-rc1.
Changes and removals
- Rework source range handling:
- Non-views are now accepted as source ranges --
this includes types likestd::string
andstd::vector<char>
- Non-reconstructible ranges are now also accepted --
scanning functions no longer return a reconstructed source range.
The member function.range()
can be used to scan the range again,
and.reconstruct()
reconstructs the range, if possible.
Other helper member functions are also available. - Source ranges are now either taken by const lvalue reference or rvalue reference,
so they are no longer modified by scanning functions.
To access the leftover range, use the return value of the scanning function.
- Non-views are now accepted as source ranges --
- Rewrite file handling, with hopefully way less bugs this time around
- Remove
file_view
and caching ranges - Move memory mapped files to the public API
- Remove
- Remove
default_tag
, replace withscan_default
function template - Remove support for
scanf
syntax, includingscn::scanf
andscn::basic_scanf_parse_context
. - Improve Ranges integration:
- Move custom Ranges implementation to the public API (out from
scn::detail::ranges
):scn::custom_ranges
- Integrate standard library Ranges, if available:
scn::std_ranges
aliased tostd::ranges
- Use stdlib Ranges, if available, fall back to custom implementation: namespace alias
scn::ranges
, control behavior withSCN_USE_STD_RANGES
- Move custom Ranges implementation to the public API (out from
Additions
- Add more thorough documentation, tests, benchmarks and examples
- Add
scan_list_until
Fixes and minor stuff
- Fix float parsing not being locale-agnostic when global C locale was not
"C"
(#24, thanks @petrmanek (Petr Mánek) and
@amyspark for reporting) - Fix
SONAME
(#32, thanks @xvitaly (Vitaly Zaitsev)) - Use system doctest and google-benchmark if available
(#28, #30, #31,
thanks @xvitaly (Vitaly Zaitsev), and
@leha-bot (Alex) for reporting) - Fix CUDA compilation (#22, thanks @invexed (James Beach) for reporting)
- Move to readthedocs (https://scnlib.readthedocs.com) from https://scnlib.dev
- Move to GitHub Actions from Travis and Appveyor