scanf for modern C++
Planned to be the last 0.x release before 1.0-rc1.
std::string
and std::vector<char>
.range()
can be used to scan the range again,
and .reconstruct()
reconstructs the range, if possible.
Other helper member functions are also available.file_view
and caching rangesdefault_tag
, replace with scan_default
function templatescanf
syntax, including scn::scanf
and scn::basic_scanf_parse_context
.scn::detail::ranges
): scn::custom_ranges
scn::std_ranges
aliased to std::ranges
scn::ranges
, control behavior with SCN_USE_STD_RANGES
scan_list_until
"C"
(#24, thanks @petrmanek (Petr Mánek) and
@amyspark for reporting)SONAME
(#32, thanks @xvitaly (Vitaly Zaitsev))Largely a bugfix release
scan
fail, the whole function failsread
-field removed from result
scan_list
std::string_view
and MSVC debug iterators (#11, #14, #18, #20)std::string
s (#16)git
command in README (#13)Thanks to @nanoric and @SuperWig for bug reports!
std::char_traits
std::string
sThere are so many changes, that writing a complete changelog isn't really possible. The most substantial change is the removal of streams, which have been replaced with C++20-like ranges. There are also some pretty sweet performance improvements; see benchmarks in README for more details.
See the documentation for more details, a tutorial, and an API reference.
SCN_RANGES
CMake optionscn::temp
helper function-Wpadded
warnings on clang-Wfloat-equal
and -Wconversion
warnings on gccC4146
error on UWP MSVCQuick bugfix release
scn::cstdin()
or scn::wcstdin()
,
caused by the copy and move constructor of small_vector
setting data pointer to nullptr
if copying/moving from an empty small_vector
.
(Thanks @SuperWig for reporting!)scn::ranges::get_value
.First release!