Skip to content

Releases: zrax/string_theory

String Theory 2.3

24 Oct 18:44
2.3
Compare
Choose a tag to compare
  • Fix char8_t and std::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 to ST::buffer<T>.
  • Add _stbuf user literal operator and ST_(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

25 Jun 18:02
2.2
Compare
Choose a tag to compare
  • 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 of std::filesystem and std::string_view in parallel with the non-experimental versions where possible.
  • Add ST::string::set_validated() and ST::string::from_validated() as a faster alternative to construction with ST::assume_valid.
  • Add support for C++20 char8_t and std::u8string types

String Theory 2.1

12 Jul 16:37
2.1
Compare
Choose a tag to compare
  • Fix major bug in ST::buffer<T>::operator==() and ST::buffer<T>::allocate(size, fill) for types of T larger than char.
  • 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

12 Jul 16:35
1.8
Compare
Choose a tag to compare
  • Fix major bug in ST::buffer<T>::operator==() for types of T larger than char.
  • 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

08 Jan 18:21
2.0
Compare
Choose a tag to compare
  • Add support for reordering and reusing format parameters as "{&1}" in formatting functions.
  • Add support for std::string_view and friends.
  • Rename is_empty to empty and char_at to at for better compatibility with STL.
    Note that the old names are still available, but will show a deprecation warning unless ST_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<< and operator>> overloads for using ST::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 that create_writable_buffer is still available, but will show a deprecation warning unless ST_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

15 Dec 02:00
1.7
Compare
Choose a tag to compare
  • Add more support for char16_t and char32_t string literals and conversions.
  • Add support for std::u16string and std::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 for ST::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

13 Feb 18:15
1.6
Compare
Choose a tag to compare
  • Add operator+ and operator+= overloads to ST::string to append/prepend individual characters.
  • Add find and find_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

02 Feb 17:03
1.5
Compare
Choose a tag to compare
  • Fix for exceptions thrown in the ST::string move constructor destroying the original data too early (#5)

String Theory 1.4

27 Jan 22:27
1.4
Compare
Choose a tag to compare
  • 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

16 Jan 19:40
1.3
Compare
Choose a tag to compare
  • Fix several warnings in CMake and newer MSVC++ versions
  • Allow a NULL data pointer in ST::base64_encode and ST::hex_encode iff size == 0