You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#PR101: As part of the substr ctor cleanup, the to_substr(char (&arr)[N]) overload no longer decays to char* inside. This changes calling code by now returning a substr with length equal to N-1 instead of strlen(arr) as before:
// longer than "foo", ie longer than {'f', 'o', 'o', '\0'}:char arr[] = "foo\0\0\0\0\0\0";
assert(strlen(arr) == 3);
assert(sizeof(arr) == 9);
// previously:assert(to_substr(arr).len == 3);
// now:assert(to_substr(arr).len == 9);
// the breaking change happens only with arrays:assert(to_substr((char*)ptr).len == 3); // as before
add simultaneous ctors from char[] and char*. Using SFINAE to narrow the char* overload prevents it from overriding the char[] overload. Thanks to @huangqinjin for the idea (see #97).
remove unneeded constructors of csubstr from non-const chars.
to each single-argument ctor, add corresponding functions to_csubstr() and to_substr() to enable clients coercing their types in generic code such as c4::cat() and c4::format().
Add interop with std::string_view when the standard is at least C++17 (#PR101):
PR#108 - Fix preprocessor concatenation of strings in C4_NOT_IMPLEMENTED_MSG() and C4_NOT_IMPLEMENTED_IF_MSG().
PR#106 - Fix include guard in the gcc 4.8 compatibility header, causing it to be missing from the amalgamated header. See also #125: there was no check for __GNUC__ being defined.
PR#123 - Ensure the gcc 4.8 compatibility header is installed (fixes #103).
PR#105 - Fix existing throw in c4/ext/sg14/inplace_function.h. Ensure tests run with exceptions disabled and RTTI disabled. Add examples of exceptional control flow with setjmp()/std::longjmp().
PR#104/PR#112 - Fix pedantic warnings in gcc, clang and MSVC
PR#104 - Fix possible compile error when __GNUC__ is not defined
Inject explicit #include <charconv> on the amalgamated header. The amalgamation tool was filtering all prior includes, thus causing a compilation error. Addresses rapidyaml#364.
PR#117: Windows: fix compilation with MSVC/clang++.
Windows: add missing C4CORE_EXPORT to c4::base64_valid(), c4::base64_encode() and c4::base64_decode().
rapidyaml#390 - fix csubstr.first_real_span() when the exponent only has one digit (see fae7106)