Класс иммутабельной владеющей строки Подробнее...
#include <sstring.h>
Открытые члены | |
template<typename... Args> requires (sizeof...(Args) > 0 && std::is_constructible_v<Allocator, Args...>) | |
sstring (Args &&... args) | |
Конструктор пустой строки | |
~sstring () | |
Деструктор строки | |
sstring (const my_type &other) noexcept | |
Конструктор копирования строки | |
sstring (my_type &&other) noexcept | |
Конструктор перемещения | |
template<size_t N> | |
sstring (lstring< K, N, true, Allocator > &&src) | |
Конструктор перемещения из lstring с совместимым с sstring внешним буфером | |
template<typename T, size_t N = const_lit_for<K, T>::Count, typename... Args> requires std::is_constructible_v<allocator_t, Args...> | |
sstring (T &&s, Args &&... args) | |
Инициализация из строкового литерала | |
my_type & | operator= (my_type other) noexcept |
Оператор присвоения другой строки того же типа | |
my_type & | operator= (simple_str< K > other) |
Оператор присвоения другой строки другого типа | |
template<typename T, size_t N = const_lit_for<K, T>::Count> | |
my_type & | operator= (T &&other) |
Оператор присвоения строкового литерала | |
template<size_t N, bool forShared, typename A> | |
my_type & | operator= (const lstring< K, N, forShared, A > &other) |
Оператор присвоения другой строки типа lstring. | |
template<size_t N> | |
my_type & | operator= (lstring< K, N, true, Allocator > &&other) |
Оператор присвоения перемещаемой строки типа lstring с совместимым буфером | |
my_type & | operator= (const StrExprForType< K > auto &expr) |
Оператор присвоения строкового выражения | |
my_type & | make_empty () noexcept |
Сделать строку пустой | |
const K * | symbols () const noexcept |
Указатель на символы строки | |
size_t | length () const noexcept |
Длина строки | |
bool | is_empty () const noexcept |
Пустая ли строка | |
bool | empty () const noexcept |
for std::string compatibility | |
constexpr K * | place (K *ptr) const noexcept |
Копировать строку в указанный буфер. | |
void | copy_to (K *buffer, size_t bufSize) |
Копировать строку в указанный буфер. | |
size_t | size () const |
Размер строки в символах. | |
constexpr | operator str_piece () const noexcept |
Преобразовать себя в "кусок строки", включающий всю строку | |
str_piece | to_str () const noexcept |
Преобразовать себя в "кусок строки", включающий всю строку | |
std::string_view | to_sv () const noexcept |
Конвертировать в std::string_view. | |
std::string | to_string () const noexcept |
Конвертировать в std::string. | |
constexpr str_piece | operator() (ptrdiff_t from, ptrdiff_t len=0) const noexcept |
Получить часть строки как "simple_str". | |
constexpr str_piece | mid (size_t from, size_t len=-1) const noexcept |
Получить часть строки как "кусок строки". | |
constexpr str_piece | from_to (size_t from, size_t to) const noexcept |
Получить подстроку simple_str с позиции от from до позиции to (не включая её) | |
bool | operator! () const noexcept |
Проверка на пустоту | |
K | at (ptrdiff_t idx) const |
Получить символ на заданной позиции | |
constexpr int | compare (str_piece o) const |
Сравнение строк посимвольно | |
constexpr int | strcmp (const K *text) const |
Сравнение с C-строкой посимвольно | |
constexpr bool | equal (str_piece other) const noexcept |
Сравнение строк на равенство | |
constexpr bool | operator== (const base &other) const noexcept |
Оператор сравнение строк на равенство | |
bool | operator== (T &&other) const noexcept |
Оператор сравнения строки и строкового литерала на равенство | |
constexpr auto | operator<=> (const base &other) const noexcept |
Оператор сравнения строк | |
auto | operator<=> (T &&other) const noexcept |
Оператор сравнения строки и строкового литерала | |
int | compare_ia (str_piece text) const noexcept |
Сравнение строк посимвольно без учёта регистра ASCII символов | |
bool | equal_ia (str_piece text) const noexcept |
Равна ли строка другой строке посимвольно без учёта регистра ASCII символов | |
bool | less_ia (str_piece text) const noexcept |
Меньше ли строка другой строки посимвольно без учёта регистра ASCII символов | |
int | compare_iu (str_piece text) const noexcept |
Сравнение строк посимвольно без учёта регистра Unicode символов первой плоскости (<0xFFFF) | |
bool | equal_iu (str_piece text) const noexcept |
Равна ли строка другой строке посимвольно без учёта регистра Unicode символов первой плоскости (<0xFFFF) | |
bool | less_iu (str_piece text) const noexcept |
Меньше ли строка другой строки посимвольно без учёта регистра Unicode символов первой плоскости (<0xFFFF) | |
size_t | find (str_piece pattern, size_t offset=0) const noexcept |
Найти начало первого вхождения подстроки в этой строке. | |
size_t | find (K s, size_t offset=0) const noexcept |
Найти символ в этой строке. | |
size_t | find_or_throw (str_piece pattern, size_t offset=0, Args &&... args) const noexcept |
Найти начало первого вхождения подстроки в этой строке или выкинуть исключение. | |
size_t | find_end (str_piece pattern, size_t offset=0) const noexcept |
Найти конец вхождения подстроки в этой строке. | |
size_t | find_or_all (str_piece pattern, size_t offset=0) const noexcept |
Найти начало первого вхождения подстроки в этой строке или конец строки. | |
size_t | find_or_all (K s, size_t offset=0) const noexcept |
Найти символ в этой строке или конец строки. | |
size_t | find_end_or_all (str_piece pattern, size_t offset=0) const noexcept |
Найти конец первого вхождения подстроки в этой строке или конец строки. | |
size_t | find_last (str_piece pattern, size_t offset=-1) const noexcept |
Найти начало последнего вхождения подстроки в этой строке. | |
size_t | find_last (K s, size_t offset=-1) const noexcept |
Найти последнее вхождения символа в этой строке | |
size_t | find_end_of_last (str_piece pattern, size_t offset=-1) const noexcept |
Найти конец последнего вхождения подстроки в этой строке. | |
size_t | find_last_or_all (str_piece pattern, size_t offset=-1) const noexcept |
Найти начало последнего вхождения подстроки в этой строке или конец строки. | |
size_t | find_end_of_last_or_all (str_piece pattern, size_t offset=-1) const noexcept |
Найти конец последнего вхождения подстроки в этой строке или конец строки. | |
bool | contains (str_piece pattern, size_t offset=0) const noexcept |
Содержит ли строка указанную подстроку. | |
void | for_all_finded (const Op &op, str_piece pattern, size_t offset=0, size_t maxCount=0) const |
Вызвать функтор для всех найденных вхождений подстроки в этой строке | |
std::vector< size_t > | find_all (str_piece pattern, size_t offset=0, size_t maxCount=0) const |
Найти все вхождения подстроки в этой строке | |
size_t | find_first_of (str_piece pattern, size_t offset=0) const noexcept |
Найти первое вхождение символа из заданного набора символов | |
std::pair< size_t, size_t > | find_first_of_idx (str_piece pattern, size_t offset=0) const noexcept |
Найти первое вхождение символа из заданного набора символов | |
size_t | find_first_not_of (str_piece pattern, size_t offset=0) const noexcept |
Найти первое вхождение символа не из заданного набора символов | |
size_t | find_last_of (str_piece pattern, size_t offset=str::npos) const noexcept |
Найти последнее вхождение символа из заданного набора символов | |
std::pair< size_t, size_t > | find_last_of_idx (str_piece pattern, size_t offset=str::npos) const noexcept |
Найти последнее вхождение символа из заданного набора символов | |
size_t | find_last_not_of (str_piece pattern, size_t offset=str::npos) const noexcept |
Найти последнее вхождение символа не из заданного набора символов | |
my_type | substr (ptrdiff_t from, ptrdiff_t len=0) const |
Получить подстроку. Работает аналогично operator(), только результат выдает того же типа, к которому применён метод | |
my_type | str_mid (size_t from, size_t len=-1) const |
Получить часть строки объектом того же типа, к которому применён метод, аналогично mid. | |
T | as_int () const noexcept |
Преобразовать строку в число заданного типа | |
std::tuple< T, IntConvertResult, size_t > | to_int () const noexcept |
Преобразовать строку в число заданного типа | |
double | to_double () const noexcept |
Преобразовать строку в double. | |
void | as_number (T &t) |
Преобразовать строку в целое число | |
void | as_number (double &t) |
Преобразовать строку в double. | |
T | splitf (str_piece delimeter, const Op &beforeFunc, size_t offset=0) const |
Разделить строку на части по заданному разделителю, с возможным применением функтора к каждой подстроке | |
T | split (str_piece delimeter, size_t offset=0) const |
Разделить строку на подстроки по заданному разделителю | |
Splitter< K > | splitter (str_piece delimeter) const |
Получить объект Splitter по заданному разделителю, который позволяет последовательно получать подстроки методом next() , пока is_done() false. | |
constexpr bool | starts_with (str_piece prefix) const noexcept |
Начинается ли строка с заданной подстроки | |
constexpr bool | starts_with_ia (str_piece prefix) const noexcept |
Начинается ли строка с заданной подстроки без учёта регистра ASCII символов | |
bool | starts_with_iu (str_piece prefix) const noexcept |
Начинается ли строка с заданной подстроки без учёта регистра Unicode символов первой плоскости (<0xFFFF) | |
constexpr bool | prefix_in (str_piece text) const noexcept |
Является ли эта строка началом другой строки | |
constexpr bool | ends_with (str_piece suffix) const noexcept |
Заканчивается ли строка указанной подстрокой | |
constexpr bool | ends_with_ia (str_piece suffix) const noexcept |
Заканчивается ли строка указанной подстрокой без учёта регистра ASCII символов | |
constexpr bool | ends_with_iu (str_piece suffix) const noexcept |
Заканчивается ли строка указанной подстрокой без учёта регистра Unicode символов первой плоскости (<0xFFFF) | |
bool | is_ascii () const noexcept |
Содержит ли строка только ASCII символы | |
R | uppered_only_ascii () const |
Получить копию строки в верхнем регистре ASCII символов | |
R | lowered_only_ascii () const |
Получить копию строки в нижнем регистре ASCII символов | |
R | uppered () const |
Получить копию строки в верхнем регистре Unicode символов первой плоскости (<0xFFFF) | |
R | lowered () const |
Получить копию строки в нижнем регистре Unicode символов первой плоскости (<0xFFFF) | |
R | replaced (str_piece pattern, str_piece repl, size_t offset=0, size_t maxCount=0) const |
Получить копию строки с заменёнными вхождениями подстрок | |
expr_replaces< K, N - 1, L - 1 > | replace_init (T &&pattern, M &&repl) const |
Получить строковое выражение, которое выдает строку с заменёнными подстроками, заданными строковыми литералами. | |
R | trimmed () const |
Получить строку с удалением пробельных символов слева и справа | |
R | trimmed (T &&pattern) const |
Получить строку с удалением символов, заданных строковым литералом, слева и справа | |
R | trimmed (str_piece pattern) const |
Получить строку с удалением символов, заданных другой строкой, слева и справа | |
R | trimmed_left () const |
Получить строку с удалением пробельных символов слева | |
R | trimmed_left (T &&pattern) const |
Получить строку с удалением символов, заданных строковым литералом, слева | |
R | trimmed_left (str_piece pattern) const |
Получить строку с удалением символов, заданных другой строкой, слева | |
R | trimmed_right () const |
Получить строку с удалением пробельных символов справа | |
R | trimmed_right (T &&pattern) const |
Получить строку с удалением символов, заданных строковым литералом, справа | |
R | trimmed_right (str_piece pattern) const |
Получить строку с удалением символов, заданных другой строкой, справа | |
R | trimmed_with_spaces (T &&pattern) const |
Получить строку с удалением символов, заданных строковым литералом, а также пробельных символов, слева и справа | |
R | trimmed_with_spaces (str_piece pattern) const |
Получить строку с удалением символов, заданных другой строкой, а также пробельных символов, слева и справа | |
R | trimmed_left_with_spaces (T &&pattern) const |
Получить строку с удалением символов, заданных строковым литералом, а также пробельных символов, слева | |
R | trimmed_left_with_spaces (str_piece pattern) const |
Получить строку с удалением символов, заданных другой строкой, а также пробельных символов, слева | |
R | trimmed_right_with_spaces (T &&pattern) const |
Получить строку с удалением символов, заданных строковым литералом, а также пробельных символов, справа | |
R | trimmed_right_with_spaces (str_piece pattern) const |
Получить строку с удалением символов, заданных другой строкой, а также пробельных символов, справа | |
operator const K * () const noexcept | |
Оператор преобразования в нуль-терминированную C-строку | |
s_str_nt | to_nts (size_t from=0) const |
Получить simple_str_nt, начиная с заданного символа | |
operator s_str_nt () const | |
Преобразовать в simple_str_nt. | |
Открытые статические члены | |
template<typename... T> | |
static my_type | printf (const K *pattern, T &&... args) |
Получить строку, отформатированную с помощью std::sprintf | |
template<typename... T> | |
static my_type | format (const FmtString< K, T... > &fmtString, T &&... args) |
Получить строку, отформатированную с помощью std::format | |
template<typename... T> | |
static my_type | vformat (simple_str< K > fmtString, T &&... args) |
Получить строку, отформатированную с помощью std::vformat | |
static my_type | join (const T &strings, s_str delimeter, bool tail=false, bool skip_empty=false, Args &&... args) |
Конкатенация строк из контейнера в одну строку | |
static my_type | uppered_only_ascii_from (const From &f, Args &&... args) |
Создать строку, копию переданной в верхнем регистре символов ASCII. | |
static my_type | lowered_only_ascii_from (const From &f, Args &&... args) |
Создать копию переданной строки в нижнем регистре символов ASCII. | |
static my_type | uppered_from (const From &f, Args &&... args) |
Создать копию переданной строки в верхнем регистре символов Unicode первой плоскости (<0xFFFF) | |
static my_type | lowered_from (const From &f, Args &&... args) |
Создать копию переданной строки в нижнем регистре символов Unicode первой плоскости (<0xFFFF) | |
static my_type | replaced_from (const From &f, s_str pattern, s_str repl, size_t offset=0, size_t maxCount=0, Args &&... args) |
Создать копию переданной строки с заменой подстрок | |
Защищенные члены | |
allocator_t & | allocator () |
Получить аллокатор | |
Класс иммутабельной владеющей строки
K | - тип символов |
Allocator | - тип аллокатора |
"shared" строка. Класс с small string optimization плюс разделяемый иммутабельный буфер строки. Так как буфер строки в этом классе иммутабельный, то: Во-первых, нет нужды хранить размер выделенного буфера, мы его всё-равно не будем изменять. Во-вторых, появляется ещё один тип строки - строка, инициализированная строковым литералом. Для неё просто сохраняем указатель на символы, и не считаем ссылки. Таким образом, инициализация строкового объекта в программе литералом - ничего никуда не копирует - ни в себя, ни в динамическую память, и не стоит дороже по сравнению с инициализацией сырого указателя на строку, и даже ещё оптимальнее, так как ещё и сразу подставляет размер, а не вычисляет его в рантайме.
В случае разделяемого буфера размер строки всё-равно храним не в общем буфере, а в каждом объекте. Из-за SSO места всё-равно хватает, а в память лезть за длиной придётся меньше. Например, подсчитать сумму длин строк в векторе - пройдётся только по памяти в векторе.
Размеры для x64:
|
inline |
Конструктор пустой строки
...args | - параметры для инициализации аллокатора |
|
inlinenoexcept |
Конструктор копирования строки
other | - копируемая строка |
|
inlinenoexcept |
Конструктор перемещения
other | - перемещаемая строка |
|
inline |
Конструктор перемещения из lstring с совместимым с sstring внешним буфером
src | - перемещаемая строка |
В случае, если символы в lstring лежат во внешнем аллоцированном буфере, просто забираем указатель на буфер, он нам подойдёт.
|
inline |
Инициализация из строкового литерала
s | - строковый литерал |
...args | - параметры для инициализации аллокатора |
В этом случае просто запоминаем указатель на строку и её длину.
|
inlinenoexceptinherited |
Преобразовать строку в число заданного типа
T | - желаемый тип числа |
CheckOverflow | - проверять на переполнение |
Base | - основание счисления числа, от -1 до 36, кроме 1.
|
SkipWs | - пропускать пробельные символы в начале строки |
AllowSign | - допустим ли знак '+' перед числом |
|
inlineinherited |
Преобразовать строку в double.
t | - переменная, в которую записывается результат |
|
inlineinherited |
Преобразовать строку в целое число
T | - тип числа, выводится из аргумента |
t | - переменная, в которую записывается результат |
|
inlineinherited |
Получить символ на заданной позиции
idx | - индекс символа. Для отрицательных значений отсчитывается от конца строки. |
Не производит проверку на выход за границы строки
|
inlineconstexprinherited |
Сравнение строк посимвольно
o | - другая строка |
|
inlinenoexceptinherited |
Сравнение строк посимвольно без учёта регистра ASCII символов
text | - другая строка |
|
inlinenoexceptinherited |
Сравнение строк посимвольно без учёта регистра Unicode символов первой плоскости (<0xFFFF)
text | - другая строка |
|
inlinenoexceptinherited |
Содержит ли строка указанную подстроку.
pattern | - искомая строка |
offset | - с какой позиции начинать поиск |
|
inlineinherited |
Копировать строку в указанный буфер.
Метод добавляет \0
после скопированных символов. Не выходит за границы буфера.
buffer | - указатель на буфер |
bufSize | - размер буфера в символах. |
|
inlineconstexprnoexceptinherited |
Заканчивается ли строка указанной подстрокой
suffix | - подстрока |
|
inlineconstexprnoexceptinherited |
Заканчивается ли строка указанной подстрокой без учёта регистра ASCII символов
suffix | - подстрока |
|
inlineconstexprnoexceptinherited |
Заканчивается ли строка указанной подстрокой без учёта регистра Unicode символов первой плоскости (<0xFFFF)
suffix | - подстрока |
|
inlineconstexprnoexceptinherited |
Сравнение строк на равенство
other | - другая строка |
|
inlinenoexceptinherited |
Равна ли строка другой строке посимвольно без учёта регистра ASCII символов
text | - другая строка |
|
inlinenoexceptinherited |
Равна ли строка другой строке посимвольно без учёта регистра Unicode символов первой плоскости (<0xFFFF)
text | - другая строка |
|
inlinenoexceptinherited |
Найти символ в этой строке.
s | - искомый символ |
offset | - с какой позиции начинать поиск |
|
inlinenoexceptinherited |
Найти начало первого вхождения подстроки в этой строке.
pattern | - искомая строка |
offset | - с какой позиции начинать поиск |
|
inlineinherited |
Найти все вхождения подстроки в этой строке
pattern | - искомая подстрока |
offset | - позиция начала поиска |
maxCount | - максимальное количество обрабатываемых вхождений, 0 - без ограничений |
|
inlinenoexceptinherited |
Найти конец вхождения подстроки в этой строке.
pattern | - искомая строка |
offset | - с какой позиции начинать поиск |
|
inlinenoexceptinherited |
Найти конец последнего вхождения подстроки в этой строке.
pattern | - искомая строка |
offset | - c какой позиции вести поиск в обратную сторону, -1 - с самого конца |
|
inlinenoexceptinherited |
Найти конец последнего вхождения подстроки в этой строке или конец строки.
pattern | - искомая строка |
offset | - c какой позиции вести поиск в обратную сторону, -1 - с самого конца |
|
inlinenoexceptinherited |
Найти конец первого вхождения подстроки в этой строке или конец строки.
pattern | - искомая строка |
offset | - с какой позиции начинать поиск |
|
inlinenoexceptinherited |
Найти первое вхождение символа не из заданного набора символов
pattern | - строка, задающая набор символов |
offset | - позиция начала поиска |
|
inlinenoexceptinherited |
Найти первое вхождение символа из заданного набора символов
pattern | - строка, задающая набор искомых символов |
offset | - позиция начала поиска |
|
inlinenoexceptinherited |
Найти первое вхождение символа из заданного набора символов
pattern | - строка, задающая набор искомых символов |
offset | - позиция начала поиска |
|
inlinenoexceptinherited |
Найти последнее вхождения символа в этой строке
s | - искомый символ |
offset | - c какой позиции вести поиск в обратную сторону, -1 - с самого конца |
|
inlinenoexceptinherited |
Найти начало последнего вхождения подстроки в этой строке.
pattern | - искомая строка |
offset | - c какой позиции вести поиск в обратную сторону, -1 - с самого конца |
|
inlinenoexceptinherited |
Найти последнее вхождение символа не из заданного набора символов
pattern | - строка, задающая набор символов |
offset | - позиция начала поиска |
|
inlinenoexceptinherited |
Найти последнее вхождение символа из заданного набора символов
pattern | - строка, задающая набор искомых символов |
offset | - позиция начала поиска |
|
inlinenoexceptinherited |
Найти последнее вхождение символа из заданного набора символов
pattern | - строка, задающая набор искомых символов |
offset | - позиция начала поиска |
|
inlinenoexceptinherited |
Найти начало последнего вхождения подстроки в этой строке или конец строки.
pattern | - искомая строка |
offset | - c какой позиции вести поиск в обратную сторону, -1 - с самого конца |
|
inlinenoexceptinherited |
Найти символ в этой строке или конец строки.
s | - искомый символ |
offset | - с какой позиции начинать поиск |
|
inlinenoexceptinherited |
Найти начало первого вхождения подстроки в этой строке или конец строки.
pattern | - искомая строка |
offset | - с какой позиции начинать поиск |
|
inlinenoexceptinherited |
Найти начало первого вхождения подстроки в этой строке или выкинуть исключение.
Exc | - тип исключения |
Args... | - типы параметров для конструирования исключения, выводятся из аргументов |
pattern | - искомая строка |
offset | - с какой позиции начинать поиск |
|
inlineinherited |
Вызвать функтор для всех найденных вхождений подстроки в этой строке
op | - функтор, принимающий строку |
pattern | - искомая подстрока |
offset | - позиция начала поиска |
maxCount | - максимальное количество обрабатываемых вхождений, 0 - без ограничений |
|
inlinestatic |
Получить строку, отформатированную с помощью std::format
pattern | - константная форматная строка |
...args | - аргументы для std::format |
|
inlineconstexprnoexceptinherited |
Получить подстроку simple_str с позиции от from до позиции to (не включая её)
Для производительности метод никак не проверяет выходы за границы строки, используйте в сценариях, когда точно знаете, что это позиции внутри строки и to >= from.
from | - начальная позиция |
to | - конечная позиция (не входит в результат) |
|
inlinestaticinherited |
Конкатенация строк из контейнера в одну строку
strings | - контейнер со строками |
delimeter | - разделитель, добавляемый между строками |
tail | - добавить разделитель после последней строки |
skip_empty | - пропускать пустые строки без добавления разделителя |
...args | - параметры для инициализации аллокатора |
Функция служит для слияния контейнера строк в одну строку с разделителем.
Стоит отметить, что при заранее известном разделителе лучше пользоваться строковым выражением e_join
.
В этом случае компилятор может лучше оптимизировать код слияния строк.
|
inlinenoexceptinherited |
Меньше ли строка другой строки посимвольно без учёта регистра ASCII символов
text | - другая строка |
|
inlinenoexceptinherited |
Меньше ли строка другой строки посимвольно без учёта регистра Unicode символов первой плоскости (<0xFFFF)
text | - другая строка |
|
inlineinherited |
Получить копию строки в нижнем регистре Unicode символов первой плоскости (<0xFFFF)
R | - желаемый тип строки, по умолчанию тот же, чей метод вызывался. |
|
inlinestaticinherited |
Создать копию переданной строки в нижнем регистре символов Unicode первой плоскости (<0xFFFF)
f | - строка источник |
...args | - параметры для инициализации аллокатора |
Регистр меняется упрощенными таблицами, где один code_point всегда меняется в один code_point (но для UTF-8 возможно, что длина в code unit'ах изменится).
|
inlineinherited |
Получить копию строки в нижнем регистре ASCII символов
R | - желаемый тип строки, по умолчанию тот же, чей метод вызывался. |
|
inlinestaticinherited |
Создать копию переданной строки в нижнем регистре символов ASCII.
f | - строка источник |
...args | - параметры для инициализации аллокатора |
|
inlinenoexcept |
Сделать строку пустой
|
inlineconstexprnoexceptinherited |
Получить часть строки как "кусок строки".
from | - количество символов от начала строки. При превышении размера строки вернёт пустую строку. |
len | - количество символов в получаемом "куске". При выходе за пределы строки вернёт всё до конца строки. |
|
inlinenoexceptinherited |
Оператор преобразования в нуль-терминированную C-строку
|
inlineinherited |
Преобразовать в simple_str_nt.
|
inlineconstexprnoexceptinherited |
Преобразовать себя в "кусок строки", включающий всю строку
|
inlineconstexprnoexceptinherited |
Получить часть строки как "simple_str".
from | - количество символов от начала строки. |
len | - количество символов в получаемом "куске". |
Если from
меньше нуля, то отсчитывается -from
символов от конца строки в сторону начала. Если len
меньше или равно нулю, то отсчитать -len
символов от конца строки
|
inlineconstexprnoexceptinherited |
Оператор сравнения строк
other | - другая строка |
|
inlinenoexceptinherited |
Оператор сравнения строки и строкового литерала
other | - строковый литерал |
|
inline |
Оператор присвоения другой строки типа lstring.
other | - другая строка |
|
inline |
Оператор присвоения строкового выражения
expr | - строковое выражения |
В строковом выражение допустимо ссылаться на части этой же строки, так как сначала создаётся копия.
|
inline |
Оператор присвоения перемещаемой строки типа lstring с совместимым буфером
other | - другая строка |
|
inlinenoexcept |
Оператор присвоения другой строки того же типа
other | - другая строка |
|
inline |
Оператор присвоения другой строки другого типа
other | - другая строка |
|
inline |
Оператор присвоения строкового литерала
other | - строковый литера |
|
inlineconstexprnoexceptinherited |
Оператор сравнение строк на равенство
other | - другая строка |
|
inlinenoexceptinherited |
Оператор сравнения строки и строкового литерала на равенство
other | - строковый литерал |
|
inlineconstexprnoexceptinherited |
Копировать строку в указанный буфер.
Метод предполагает, что размер выделенного буфера достаточен для всей строки, т.е. предварительно была запрошена length()
. Не добавляет \0
.
ptr | - указатель на буфер |
|
inlineconstexprnoexceptinherited |
Является ли эта строка началом другой строки
text | - другая строка |
|
inlinestatic |
Получить строку, отформатированную с помощью std::sprintf
pattern | - форматная строка |
...args | - аргументы для sprintf |
Для Windows поддерживаются posix позиционные аргументы, используется _sprintf_p
.
|
inlineinherited |
Получить строковое выражение, которое выдает строку с заменёнными подстроками, заданными строковыми литералами.
pattern | - строковый литерал, подстрока, которую меняем |
repl | - строковый литерал, подстрока, на которую меняем |
|
inlineinherited |
Получить копию строки с заменёнными вхождениями подстрок
R | - желаемый тип строки, по умолчанию тот же, чей метод вызывался. |
pattern | - искомая подстрока |
repl | - строка, на которую заменять |
offset | - начальная позиция поиска |
maxCount | - максимальное количество замен, 0 - без ограничений |
|
inlinestaticinherited |
Создать копию переданной строки с заменой подстрок
f | - строка источник |
pattern | - подстрока, которую надо заменить |
repl | - строка, на которую надо заменить |
offset | - начальная позиция для поиска подстрок |
maxCount | - максимальное количество замен, 0 - без ограничений |
...args | - параметры для инициализации аллокатора |
|
inlineinherited |
Размер строки в символах.
|
inlineinherited |
Разделить строку на подстроки по заданному разделителю
T | - тип контейнера для результата |
delimeter | - разделитель |
offset | - позиция начала поиска разделителя |
|
inlineinherited |
Разделить строку на части по заданному разделителю, с возможным применением функтора к каждой подстроке
T | - тип контейнера для складывания подстрок. |
delimeter | - подстрока разделитель |
beforeFunc | - функтор для применения к найденным подстрокам, перед помещением их в результат |
offset | - позиция начала поиска разделителя |
Для каждой найденной подстроки, если функтор может принять её, вызывается функтор, и подстрока присваивается результату функтора. Далее подстрока пытается добавиться в результат, вызывая один из его методов - emplace_back
, push_back
, operator[]
. Если ни одного этого метода нет, ничего не делается, только вызов функтора. operator[]
пытается применится, если у результата можно получить размер через std::size
и мы не выходим за этот размер. При этом, если найденная подстрока получается совпадающей со всей строкой - в результат пытается поместить не подстроку, а весь объект строки, что позволяет, например, эффективно копировать sstring.
|
inherited |
Получить объект Splitter
по заданному разделителю, который позволяет последовательно получать подстроки методом next()
, пока is_done()
false.
delimeter | - разделитель |
|
inlineconstexprnoexceptinherited |
Начинается ли строка с заданной подстроки
prefix | - подстрока |
|
inlineconstexprnoexceptinherited |
Начинается ли строка с заданной подстроки без учёта регистра ASCII символов
prefix | - подстрока |
|
inlinenoexceptinherited |
Начинается ли строка с заданной подстроки без учёта регистра Unicode символов первой плоскости (<0xFFFF)
prefix | - подстрока |
|
inlineinherited |
Получить часть строки объектом того же типа, к которому применён метод, аналогично mid.
from | - количество символов от начала строки. При превышении размера строки вернёт пустую строку. |
len | - количество символов в получаемом "куске". При выходе за пределы строки вернёт всё до конца строки. |
|
inlineconstexprinherited |
Сравнение с C-строкой посимвольно
o | - другая строка |
|
inlineinherited |
Получить подстроку. Работает аналогично operator(), только результат выдает того же типа, к которому применён метод
from | - количество символов от начала строки. Если меньше нуля, отсчитывается от конца строки в сторону начала. |
len | - количество символов в получаемом "куске". Если меньше или равно нулю, то отсчитать len символов от конца строки |
|
inlinenoexceptinherited |
Преобразовать строку в double.
|
inlinenoexceptinherited |
Преобразовать строку в число заданного типа
T | - желаемый тип числа |
CheckOverflow | - проверять на переполнение |
Base | - основание счисления числа, от -1 до 36, кроме 1.
|
SkipWs | - пропускать пробельные символы в начале строки. Пропускаются все символы с ASCII кодами <= 32. |
AllowSign | - допустим ли знак '+' перед числом |
|
inlineinherited |
Получить simple_str_nt, начиная с заданного символа
from | - позиция начального символа, по умолчанию 0 |
|
inlinenoexceptinherited |
Преобразовать себя в "кусок строки", включающий всю строку
|
inlinenoexceptinherited |
Конвертировать в std::string.
|
inlinenoexceptinherited |
Конвертировать в std::string_view.
|
inlineinherited |
Получить строку с удалением пробельных символов слева и справа
R | - желаемый тип строки, по умолчанию simple_str |
|
inlineinherited |
Получить строку с удалением символов, заданных другой строкой, слева и справа
R | - желаемый тип строки, по умолчанию simple_str |
pattern | - строка, задающая символы, которые будут обрезаться |
|
inlineinherited |
Получить строку с удалением символов, заданных строковым литералом, слева и справа
R | - желаемый тип строки, по умолчанию simple_str |
pattern | - строковый литерал, задающий символы, которые будут обрезаться |
|
inlineinherited |
Получить строку с удалением пробельных символов слева
R | - желаемый тип строки, по умолчанию simple_str |
|
inlineinherited |
Получить строку с удалением символов, заданных другой строкой, слева
R | - желаемый тип строки, по умолчанию simple_str |
pattern | - строка, задающая символы, которые будут обрезаться |
|
inlineinherited |
Получить строку с удалением символов, заданных строковым литералом, слева
R | - желаемый тип строки, по умолчанию simple_str |
pattern | - строковый литерал, задающий символы, которые будут обрезаться |
|
inlineinherited |
Получить строку с удалением символов, заданных другой строкой, а также пробельных символов, слева
R | - желаемый тип строки, по умолчанию simple_str |
pattern | - строка, задающая символы, которые будут обрезаться |
|
inlineinherited |
Получить строку с удалением символов, заданных строковым литералом, а также пробельных символов, слева
R | - желаемый тип строки, по умолчанию simple_str |
pattern | - строковый литерал, задающий символы, которые будут обрезаться |
|
inlineinherited |
Получить строку с удалением пробельных символов справа
R | - желаемый тип строки, по умолчанию simple_str |
|
inlineinherited |
Получить строку с удалением символов, заданных другой строкой, справа
R | - желаемый тип строки, по умолчанию simple_str |
pattern | - строка, задающая символы, которые будут обрезаться |
|
inlineinherited |
Получить строку с удалением символов, заданных строковым литералом, справа
R | - желаемый тип строки, по умолчанию simple_str |
pattern | - строковый литерал, задающий символы, которые будут обрезаться |
|
inlineinherited |
Получить строку с удалением символов, заданных другой строкой, а также пробельных символов, справа
R | - желаемый тип строки, по умолчанию simple_str |
pattern | - строка, задающая символы, которые будут обрезаться |
|
inlineinherited |
Получить строку с удалением символов, заданных строковым литералом, а также пробельных символов, справа
R | - желаемый тип строки, по умолчанию simple_str |
pattern | - строковый литерал, задающий символы, которые будут обрезаться |
|
inlineinherited |
Получить строку с удалением символов, заданных другой строкой, а также пробельных символов, слева и справа
R | - желаемый тип строки, по умолчанию simple_str |
pattern | - строка, задающая символы, которые будут обрезаться |
|
inlineinherited |
Получить строку с удалением символов, заданных строковым литералом, а также пробельных символов, слева и справа
R | - желаемый тип строки, по умолчанию simple_str |
pattern | - строковый литерал, задающий символы, которые будут обрезаться |
|
inlineinherited |
Получить копию строки в верхнем регистре Unicode символов первой плоскости (<0xFFFF)
R | - желаемый тип строки, по умолчанию тот же, чей метод вызывался. |
|
inlinestaticinherited |
Создать копию переданной строки в верхнем регистре символов Unicode первой плоскости (<0xFFFF)
f | - строка источник |
...args | - параметры для инициализации аллокатора |
Регистр меняется упрощенными таблицами, где один code_point всегда меняется в один code_point (но для UTF-8 возможно, что длина в code unit'ах изменится).
|
inlineinherited |
Получить копию строки в верхнем регистре ASCII символов
R | - желаемый тип строки, по умолчанию тот же, чей метод вызывался. |
|
inlinestaticinherited |
Создать строку, копию переданной в верхнем регистре символов ASCII.
f | - строка источник |
...args | - параметры для инициализации аллокатора |
|
inlinestatic |
Получить строку, отформатированную с помощью std::vformat
pattern | - форматная строка |
...args | - аргументы для std::vformat |