Releases: StormBytePP/StormByte-String
Releases · StormBytePP/StormByte-String
Release list
Version 1.0.0
[Summary]
StormByte-String is the C++26 text module of the StormByte suite.
It is not Base, Buffer, Config, Crypto, Database, Logger, Multimedia, Network or System. Those live in their own repos. This module depends on Base 2.0.0 or later.
Public headers under StormByte/string/ cover String and WString: owned UTF-8 and wide text on CString / WCString, safe to use across a DLL boundary. They are not std::string / std::wstring.
If you landed here from a release link and have not read the tree:
- What this module is, how to build it, and examples: README.md
- Since 1.0.0 license: original source in this repository is dual-licensed, LGPL v3 or later or a commercial license from the copyright holder. The grant does not cover other StormByte modules or
thirdparty/(including the bundled Base tree). LICENSE
Added
- String — owned UTF-8 text on
CString. Null vs empty, contiguous const iterators, implicitstd::string_view, explicitstd::string,operator<<, content==/!=/<=>,swap,std::hash. Covered byStringTests. - WString — wide counterpart on
WCString. Same shape withwchar_t/std::wstring_view/std::wstring/std::wostream. Covered byWStringTests. - Conversion — explicit
String↔WStringthrough UTF-8. Ill-formed input becomes U+FFFD. - ToUpper / ToLower — ASCII and Latin-1 Supplement. Other code points copied as-is. Static and instance.
- SanitizeNewlines — CR LF → LF. Static and instance.
- RemoveWhitespace — drops
isspace/iswspace. Static and instance. - IsInteger — optional sign plus digits. Static and instance.
- Split — whitespace tokens into the caller’s
vector. Static and instance. - Explode — delimiter tokens into the caller’s
queue, empty fields kept. Static and instance. - License — original source in this repository is dual-licensed: GNU LGPL v3 or later, or a commercial license from the copyright holder. The grant applies only to original StormByte-String source in this repository. It does not cover other StormByte modules or third-party material (including
thirdparty/and the bundled Base tree). No patent rights are granted.
Changed
- Shared vs static follows CMake
BUILD_SHARED_LIBS(declared inlib/, default ON). There is noSTORMBYTE_STRING_SHAREDCMake option. When the library is shared, the compile definitionSTORMBYTE_STRING_SHAREDis still set sovisibility.hcan distinguishdllexport/dllimport/ static. CI passes-DBUILD_SHARED_LIBS=ON. Vendored Base uses the sameshared/staticBuildMaster mode and is configured withENABLE_TEST=OFF. - String / WString.
size,lengthandoperator[]take and returnSize. That is a code-unit count, not a byte count. - Serializable. The wire size of
StringandWStringisByteSize, the same as Base. - Split / Explode. The fill is
STORMBYTE_FORCE_INLINEin the caller, including the overloads that return the container.inlineon an exported class can still be a call into the String DLL.operator std::stringandoperator std::wstringuse the same macro so that copy stays on the caller heap. - String / WString observers.
starts_with,ends_with,contains,find,rfind,find_first_of,find_last_of,find_first_not_of,find_last_not_of,substr,compare,frontandback. Same shape asstd::string/std::wstring, indexes areSize, not-found isnpos. They do not throw and they do not mutate.substrreturns an owned copy.