Releases: SSARCandy/ini-cpp
Releases · SSARCandy/ini-cpp
Release list
v2.0.0 - Rewrite in modern C++17 to get better performance
v2.0.0
Highlights
- Complete rewrite in modern C++17 — still a single header, same public API
- Removed the legacy C parser (
malloc/fgets/char buffers) and C API (ini_parse*,ini_handler,INI_*macros) - Zero-copy parsing with
std::string_view; numeric conversion viastd::from_chars(auto-fallback on older compilers)
Performance (GCC 13, -O2)
- Parse: 2.2× faster
Get<int>/Get<std::string>: ~100× faster (old version copied the whole section map on every call)GetVector<double>: ~20× faster- Peak memory: +8%
Changes
- No more 2000-char line limit or 49-char section name truncation
- Breaking: C API removed; duplicate keys with empty first value now throw
- Fixed: uninitialized
_erroron default construction;UpdateEntryno longer creates empty entries on failure - Tests: 13 → 27 (BOM, CRLF, comment rules, error messages, numeric edge cases,
FILE*ctor, writer overwrite) - Verified on GCC 7.5–13, Clang 17, MSVC 2019+
- Docs: API reference added to README; doxygen docs regenerated warning-free; CI bumped to
checkout@v4
Full Changelog: v1.2.0...v2.0.0
v1.2.0
What's Changed
- fix: suppress unused variable by @SSARCandy in #23
- Allow optionally overwriting to an ini file by @NotAFreak in #24
New Contributors
- @NotAFreak made their first contribution in #24
Full Changelog: v1.1.0...v1.2.0
Implement INIWriter
- With the new
INIReader::InsertEntry()andINIReader::UpdateEntry(), it is easy to modify the content of a reader. - Introduce to new
INIWriter, which can dump reader's content to an.inifile.