Releases: zrax/string_theory
Releases · zrax/string_theory
String Theory 2.3
- Fix
char8_t
andstd::u8string
detection when the compiler supports it but the selected C++ standard does not. - Fix a potential infinite loop when substituting bad UTF-8 sequences in
ST::string
. - Add
c_str()
methods toST::buffer<T>
. - Add
_stbuf
user literal operator andST_(CHAR|WCHAR|UTF16|UTF32)_LITERAL
macros. - Improve performance of
ST::format
and friends when formatting floating point values. - Apply forwarding of
ST::format
and friends format arguments to reduce copying.
String Theory 2.2
- Use
/std:c++latest
on MSVC 2017 and 2019 (#10) - Fix incorrect bitmask when decoding UTF-16 surrogate pairs.
- Multiple performance improvements for string comparisons
- Support the use of
std::experimental::
versions ofstd::filesystem
andstd::string_view
in parallel with the non-experimental versions where possible. - Add
ST::string::set_validated()
andST::string::from_validated()
as a faster alternative to construction withST::assume_valid
. - Add support for C++20
char8_t
andstd::u8string
types
String Theory 2.1
- Fix major bug in
ST::buffer<T>::operator==()
andST::buffer<T>::allocate(size, fill)
for types ofT
larger thanchar
. - Fix
ST::string_stream::operator<<()
for float and double not actually writing the value to the stream. - Fix potential undefined behavior formatting -(MAX_*) integers.
- Add more unit tests for the fixed cases and others.
- Slight performance improvement for simple integer formatters.
- Guarantee case insensitive conversions and comparisons occur in the "C" locale.
- Remove
<cstring>
include from public headers.
String Theory 1.8
- Fix major bug in
ST::buffer<T>::operator==()
for types ofT
larger thanchar
. - Fix
ST::string_stream::operator<<()
for float and double not actually writing the value to the stream. - Add more unit tests.
String Theory 2.0
- Add support for reordering and reusing format parameters as
"{&1}"
in formatting functions. - Add support for
std::string_view
and friends. - Rename
is_empty
toempty
andchar_at
toat
for better compatibility with STL.
Note that the old names are still available, but will show a deprecation warning unlessST_NO_2_0_DEPRECATION
is defined. - Add STL-style iterator methods, including
back
,front
,[c|r]begin
,[c|r]end
and necessary typedefs. - Add
ST::writef
for STL-style (std::ostream
-derived) streams. - Add
operator<<
andoperator>>
overloads for usingST::string
with STL-style streams. - Simplified the necessary overhead for creating new formatting functions.
- Change buffer classes to be writable (but not resizable) for easier construction and manipulation as buffers.
Note thatcreate_writable_buffer
is still available, but will show a deprecation warning unlessST_NO_2_0_DEPRECATION
is defined. - Optimized several parts of string_theory for better performance, especially around string construction, character access, and encoding conversions.
- Fix UTF-16 invalid surrogate pair replacements producing non-canonical results.
- Moved documentation to the Github wiki and cleaned it up for easier maintenance and use.
String Theory 1.7
- Add more support for char16_t and char32_t string literals and conversions.
- Add support for
std::u16string
andstd::u32string
from C++11 - Optimize
ST::string::c_str()
for the most common use case (no alternate string) - Fix
ST::hash_i
to correctly hash case-insensitively - Add explicit
std::hash
specialization forST::string
for easier use in STL containers - Fix compile issues on GCC 4.4 (CentOS/RHEL 6)
- Fix tests on MSVC 2017
String Theory 1.6
- Add
operator+
andoperator+=
overloads toST::string
to append/prepend individual characters. - Add
find
andfind_last
overloads that take a starting and ending position, respectively. - Add support for gcov/lcov coverage analysis in the test suite.
String Theory 1.5
- Fix for exceptions thrown in the
ST::string
move constructor destroying the original data too early (#5)
String Theory 1.4
- Allow
ST::printf
to be called with 0 formattable arguments (e.g.ST::printf("Hello\n");
) - Fix
ST::hex_encode
to output lower-case hex, as per the documentation. - Fix hard-coded paths in generated CMake files so installs are relocatable.
NOTE: Minimum CMake version is now 2.8.12.
string_theory 1.3
- Fix several warnings in CMake and newer MSVC++ versions
- Allow a NULL data pointer in
ST::base64_encode
andST::hex_encode
iff size == 0