Releases: biojppm/c4core
Releases · biojppm/c4core
Release list
Release 0.6.0
This release commits to SONAME stability on patch releases (for versions 0.x) and on minor releases (for versions after 1.x). The release version is set to 0.6.0 (and therefore the SONAME to 0.6) because the SONAME of the previous release is 0.5.0.
Release 0.5.0
- PR#175: update fastfloat to 8.2.10
- PR#174: improve amalgamate_utils.py
- PR#172:
- [BREAKING]
C4_LIKELY()andC4_UNLIKELY()now use[[likely]]and[[unlikely]]in C++20. Every use of this macro needs to refactored:if(C4_LIKELY(condition)) ... // error now // needs to be rewritten as: if C4_LIKELY(condition) ... // same for C4_UNLIKELY
- Add
C4_LIKELY20andC4_UNLIKELY20, which resolve directly into[[likely]]and[[unlikely]]when C++ is 20 or later, or nothing otherwise. - Add C++23 detection (
C4_CPPandC4_CPP23)
- [BREAKING]
- PR#171:
- fix warnings from names with underscores (clang: -Wreserved-identifier)
- c4/std/std.hpp: remove tuple.hpp
- PR#170 add option to use fastfloat from system:
C4CORE_WITH_FASTFLOAT_SYSTEM - PR#169
atof()/atod():- disable assertions that prevent returning false
- c4/std/std.hpp: remove tuple.hpp
Release 0.4.0
- PR#167: fixes to
substr:.begins_with()and.ends_with()now return false when input length is 0
- PR#166: fixes to
substrandtype_name()substr:- improve SFINAE rules and overloads
- add member type
value_type
type_name():- make
noexcept - return a new dedicated type
TypeNameStr. This spares costly include of span.hpp
- make
- Improve std interop headers
- Fix:
from_chars_first()must usecsubstrfor the chars parameters - clang-tidy fixes with clang-22
- PR#161 Improve base64 facilities:
- Move encoding/decoding/validation to low-level functions without abstractions:
c4::base64_valid()c4::base64_encode()c4::base64_decode()
- Change the semantics of
base64_decode()to return true when decode succeeds, or false when decode fails or the output buffer is insufficient. - Move the formatting facilities to
c4/format_base64.hpp:c4::fmt::base64()c4::to_chars(buf, fmt::cbase64())c4::from_chars(buf, fmt::cbase64())
- Add
c4/std/string_view_fwd.hpp
- Move encoding/decoding/validation to low-level functions without abstractions:
Release 0.3.0
- PR#162:
- charconv.hpp:
- add implementation of
to_chars()for raw char pointers - improve
from_chars()for bool - minor simplification of
atoi_first()andatou_first()
- add implementation of
- format.hpp:
- simplify
boolalpha()implementation catrs()/catseprs()/formatrs(): resize to capacity before trying- fix
uncatsep(): forcesepas acsubstr, and enforce it cat()/catsep()/format(): add tests to ensure repeated args- improve implementation of
fmt::left()/fmt::right(). addfmt::center()
- simplify
- Improve doxygen comments
- charconv.hpp:
- PR#163:
to_chars():- ensure
char*/const char*(using strlen) overloads accept null pointer - add implementation for
nullptr_t
- ensure
- PR#164:
- Move
aalloc()et al to new hdr/src c4/alloc.hpp - Fix shared library exports, which were causing a link error in lld-link on Windows (see rapidyaml#600).
- Move
- PR#165:
c4/std/span.hppmissing from amalgamate.py.
Release 0.2.12
dump.hpp: fixc4::dump_directly<T>to useremove_cvref<T>such that references and consts are transitively handled.- base64 formatting: add wrapper version of
from_chars()
Release 0.2.11
- Fix #141: incorrect detection of clang-cl (PR#152). Also adds support for Visual Studio 2026.
- Fix missing value of
C4CORE_VERSIONin c4coreConfig.cmake (reported in rapidyaml#584).
Release 0.2.10
- Add traits class
c4::is_writeable_string<> c4/std/*.hppadapters: add missing forward declarations ofc4::is_string<>- Add default-less
csubstr::copy_from()to simplify implementations ofto_chars()/from_chars() - Minor internal changes in c4::substr
- Add C++20
std::span<char>andstd::span<const char>adapters in new headerc4/std/span.hpp
Release 0.2.9
- Add
c4::is_string<T>trait inc4/substr.hpp, and appropriate definitions forstd::string,std::string_viewandstd::vector<char>. Defaultc4::dump_directly<T>toc4::is_string<T>. - Minor cleanup to
c4::srclocinc4/error.hpp - Minor implementation changes in
c4::mem_repeat() - Suppress false-positive null-dereference warnings for GCC >6
- Update fast_float to 8.2.4
Release 0.2.8
Fixes
- charconv: fix conversion warning (triggered in clang 21)
Release 0.2.7
- enum symbols:
- remove useless
constin return value ofc4::esyms() - add overload for building from ptr,len
- remove useless
- dump.hpp: fix implicit typing in implementation of
c4::format_dump() - utf.hpp: add missing C4_EXPORT to
c4::decode_code_point() - fix warnings with cmake 4