mirror of https://github.com/orefkov/simstr.git
Update description
This commit is contained in:
parent
c8fb92fee0
commit
91a2f798e3
|
|
@ -422,8 +422,11 @@ void StdFormatSize(benchmark::State& state) {
|
||||||
for (auto _: state) {
|
for (auto _: state) {
|
||||||
for (unsigned i = 1; i <= 100'000; i *= 10) {
|
for (unsigned i = 1; i <= 100'000; i *= 10) {
|
||||||
size_t len = std::formatted_size("abcdefghihklmopqr {:#010o} end", i);
|
size_t len = std::formatted_size("abcdefghihklmopqr {:#010o} end", i);
|
||||||
std::string str(len, 0);
|
std::string str;
|
||||||
|
str.resize_and_overwrite(len, [&](char* p, size_t) {
|
||||||
std::format_to_n(str.data(), len, "abcdefghihklmopqr {:#010o} end", i);
|
std::format_to_n(str.data(), len, "abcdefghihklmopqr {:#010o} end", i);
|
||||||
|
return len;
|
||||||
|
});
|
||||||
benchmark::DoNotOptimize(str);
|
benchmark::DoNotOptimize(str);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -76,13 +76,14 @@ When using only `#include "simstr/strexpr.h"`:
|
||||||
- str::replace - replaces occurrences of the search substring with a replacement string or string expression.
|
- str::replace - replaces occurrences of the search substring with a replacement string or string expression.
|
||||||
If the substring is not found, the string expression is not even evaluated.
|
If the substring is not found, the string expression is not even evaluated.
|
||||||
- str::make_ascii_upper, str::make_ascii_lower - change the case of ASCII characters.
|
- str::make_ascii_upper, str::make_ascii_lower - change the case of ASCII characters.
|
||||||
- Parsing integers with the possibility of "fine" tuning at compile time - you can set options for checking overflow,
|
- Parsing of integers from a "piece of string" (does not require null termination) with the possibility of "fine" tuning during compilation -
|
||||||
skipping whitespace characters, a specific radix or auto-selection by prefixes `0x`, `0`, `0b`, `0o`,
|
you can set options for checking for overflow, skipping whitespace characters, a specific radix, or auto-select by
|
||||||
the admissibility of the `+` sign. Parsing is implemented for all types of strings and characters.
|
prefixes `0x`, `0`, `0b`, `0o`, the `+` sign is allowed. Parsing is implemented for all types of strings and characters.
|
||||||
- Parsing double for `char` and `wchar_t`, as well as character types compatible with them in size.
|
- Parsing double from a "piece of string" for `char` and `char8_t`.
|
||||||
|
|
||||||
When using the full version of the library:
|
When using the full version of the library:
|
||||||
- Everything that is listed above, plus
|
- Everything that is listed above, plus
|
||||||
|
- Parsing double from a "piece of string" for all types of characters.
|
||||||
- Additional efficient string objects - `sstring` (shared string), `lstring` (local string).
|
- Additional efficient string objects - `sstring` (shared string), `lstring` (local string).
|
||||||
- `lstring` - supports many mutable operations with strings - various replacements, insertions, deletions, etc.
|
- `lstring` - supports many mutable operations with strings - various replacements, insertions, deletions, etc.
|
||||||
Allows you to set the size for the internal character buffer, which can turn *Small String Optimization* into *Big String Optimization* :).
|
Allows you to set the size for the internal character buffer, which can turn *Small String Optimization* into *Big String Optimization* :).
|
||||||
|
|
|
||||||
|
|
@ -77,13 +77,14 @@
|
||||||
- str::replace - заменяет вхождения искомой подстроки на строку замены или строковое выражение.
|
- str::replace - заменяет вхождения искомой подстроки на строку замены или строковое выражение.
|
||||||
Если подстрока не найдена, строковое выражение даже не вычисляется.
|
Если подстрока не найдена, строковое выражение даже не вычисляется.
|
||||||
- str::make_ascii_upper, str::make_ascii_lower - смена регистра ASCII символов.
|
- str::make_ascii_upper, str::make_ascii_lower - смена регистра ASCII символов.
|
||||||
- Парсинг целых чисел с возможностью "тонкой" настройки при компиляции - можно задавать опции проверки переполнения,
|
- Парсинг целых чисел из "куска строки" (не требует нуль-терминированности) с возможностью "тонкой" настройки при компиляции -
|
||||||
пропуск пробельных символов, конкретное основание счисления либо автовыбор по префиксам `0x`, `0`, `0b`, `0o`,
|
можно задавать опции проверки переполнения, пропуск пробельных символов, конкретное основание счисления либо автовыбор по
|
||||||
допустимость знака `+`. Парсинг реализован для всех видов строк и символов.
|
префиксам `0x`, `0`, `0b`, `0o`, допустимость знака `+`. Парсинг реализован для всех видов строк и символов.
|
||||||
- Парсинг double для `char` и `wchar_t`, а также совместимых с ними по размеру типов символов.
|
- Парсинг double из "куска строки" для `char` и `char8_t`.
|
||||||
|
|
||||||
При использовании полной версии библиотеки:
|
При использовании полной версии библиотеки:
|
||||||
- Всё то же, что и перечислено выше, плюс
|
- Всё то же, что и перечислено выше, плюс
|
||||||
|
- Парсинг double из "куска строки" для всех типов символов.
|
||||||
- Дополнительные эффективные строковые объекты - `sstring` (shared string), `lstring` (local string).
|
- Дополнительные эффективные строковые объекты - `sstring` (shared string), `lstring` (local string).
|
||||||
- `lstring` - поддерживает множество мутабельных операций со строками - различные замены, вставки, удаления и т.п.
|
- `lstring` - поддерживает множество мутабельных операций со строками - различные замены, вставки, удаления и т.п.
|
||||||
Позволяет задавать размер для внутреннего буфера символов, что может превращать *Small String Optimization* в *Big String Optimization* :).
|
Позволяет задавать размер для внутреннего буфера символов, что может превращать *Small String Optimization* в *Big String Optimization* :).
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue