Major Milestones
2017
February 2017
- Initial design and development of the CsString library
March 2017
- Continued work on CsString
- Create unit tests
April 2017
- Create DoxyPress documentation for CsString library
- Add additional unit tests
May 2017
- Initial release of CsString 1.0.0
- CppNow 2017 presentation on our new CsString library
June 2017
- Convert readme file to markdown
- Minor changes to work with MSVC
August 2017
September 2017
- Attended CppCon in Seattle, Washington
- Presented a talk on CsString and libGuarded at CppCon
December 2017
- Add CsStringView class and relevant methods
- Add new constructor in CsString which takes a CsStringView
- Update library documentation
2018
January 2018
- Update copyright
- Add new methods to CsStringView
- Enhanced test suite
May 2018
- Added hash function for CsChar
- Add find_fast() and rfind_fast() in CsString which both take iterators and return an iterator
July 2018
- Optimize CsString basic classes
- Added new assignment method for CsString
- Optimized subtraction of iterators
November 2018
- Standardize library name, remove suffix
- Remove export from templates
- Optimize resize methods
2019
January 2019
- Update copyright
- Enhance string encoding
February 2019
August 2019
- Add lvalue reference qualifier to prevent in place modification of a string
2020
January 2020
- Drop support for Autotools build system for CsString
- Add CMake build files for CsString
- Move to C++17
August 2020
- Add copy constructor for CsChar
- Delete the constructor in CsBasicStringView which accepted a temporary string
- Use a structured binding for improved readability
September 2020
- Correct CsString when using a compare operator
- Improve processing of string literals and treat as utf-8
2021
January 2021
- Update copyright
- Improve processing of string literals and treat as UTF-8
May 2021
- Move unit tests to Catch2
- Add utf8 string literal support for MSVC in CMake
- Improve CMake build files
- Use const iterators
- Add storage iterators
- Optimize comparison operators for utf8 and utf16
- Add new constructors for char16_t and char32_t
- Refactor constructors and methods which called fromUtf8()
- Add fromUtf16()
- Add new constructors to CsChar and CsBasicString to support char8_t added in C++20
- Improvements when C++20 is enabled
- Update library documentation
July 2021
2022
January 2022
- Update copyright
- Move from CMake 3.8 to 3.16
Match 2022
November 2022
- Modify CsString CMake build files to support exporting targets
- Define CsString_INCLUDE_DIR variable, this is the export location where the include files are installed
December 2022
2023
January 2023
- Update copyright
- CsString 1.4.0 released
2024
January 2024
- Change copyright
- Improve build file for catch tests
July 2024
- Add new unit tests
- Refactor CsString iterator, add advance_storage() method to improve performance
September 2024
- Update minimum version to CMake 3.18