Класс иммутабельной владеющей строки. Подробнее...
#include <sstring.h>
Открытые члены | |
| template<typename... Args> requires (std::is_constructible_v<allocator_t, Args...> && sizeof...(Args) > 0) | |
| sstring (Args &&... args) noexcept(std::is_nothrow_constructible_v< allocator_t, Args... >) | |
| Конструктор пустой строки. | |
| template<typename... Args> requires std::is_constructible_v<allocator_t, Args...> | |
| sstring (s_str other, Args &&... args) | |
| Конструктор из другого строкового объекта. | |
| template<typename... Args> requires std::is_constructible_v<allocator_t, Args...> | |
| sstring (size_t repeat, s_str pattern, Args &&... args) | |
| Конструктор повторения строки. | |
| template<typename... Args> requires std::is_constructible_v<allocator_t, Args...> | |
| sstring (size_t count, K pad, Args &&... args) | |
| Конструктор повторения символа. | |
| template<typename... Args> requires std::is_constructible_v<allocator_t, Args...> | |
| constexpr | sstring (const StrExprForType< K > auto &expr, Args &&... args) |
| Конструктор из строкового выражения. | |
| template<StrType< K > From, typename... Args> requires std::is_constructible_v<allocator_t, Args...> | |
| sstring (const From &f, s_str pattern, s_str repl, size_t offset=0, size_t maxCount=0, Args &&... args) | |
| Конструктор из строкового источника с заменой. | |
| constexpr | ~sstring () |
| Деструктор строки. | |
| constexpr | sstring (const my_type &other) noexcept |
| Конструктор копирования строки. | |
| constexpr | sstring (my_type &&other) noexcept |
| Конструктор перемещения. | |
| template<size_t N> | |
| constexpr | 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) | |
| Инициализация из строкового литерала. | |
| template<typename O> requires (!std::is_same_v<O, K>) | |
| sstring (simple_str< O > init) | |
| Инициализация из строкового источника с другим типом символов. Конвертирует через UTF. | |
| constexpr my_type & | operator= (my_type other) noexcept |
| Оператор присвоения другой строки того же типа. | |
| constexpr my_type & | operator= (simple_str< K > other) |
| Оператор присвоения другой строки другого типа. | |
| template<typename T, size_t N = const_lit_for<K, T>::Count> | |
| constexpr my_type & | operator= (T &&other) |
| Оператор присвоения строкового литерала. | |
| template<size_t N, bool forShared, typename A> | |
| constexpr my_type & | operator= (const lstring< K, N, forShared, A > &other) |
| Оператор присвоения другой строки типа lstring. | |
| template<size_t N> | |
| constexpr my_type & | operator= (lstring< K, N, true, Allocator > &&other) |
| Оператор присвоения перемещаемой строки типа lstring с совместимым буфером. | |
| constexpr my_type & | operator= (const StrExprForType< K > auto &expr) |
| Оператор присвоения строкового выражения. | |
| constexpr my_type & | make_empty () noexcept |
| Сделать строку пустой. | |
| constexpr const K * | symbols () const noexcept |
| Указатель на символы строки. | |
| constexpr size_t | length () const noexcept |
| Длина строки. | |
| constexpr bool | is_empty () const noexcept |
| Пустая ли строка. | |
| constexpr bool | empty () const noexcept |
| Пустая ли строка, для совместимости с std::string. | |
| 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). | |
| bool | starts_with_iu (str_piece prefix) const noexcept |
| Начинается ли строка с заданной подстроки без учёта регистра Unicode символов первой плоскости (<0xFFFF). | |
| constexpr bool | ends_with_iu (str_piece suffix) const noexcept |
| Заканчивается ли строка указанной подстрокой без учёта регистра Unicode символов первой плоскости (<0xFFFF). | |
| R | upperred () const |
| Получить копию строки в верхнем регистре Unicode символов первой плоскости (<0xFFFF). | |
| R | lowered () const |
| Получить копию строки в нижнем регистре Unicode символов первой плоскости (<0xFFFF). | |
| std::optional< double > | to_double () const noexcept |
| Преобразовать строку в double. | |
| void | as_number (double &t) const |
| Преобразовать строку в double. | |
| constexpr void | as_number (T &t) const |
| Преобразовать строку в целое число. | |
| constexpr K * | place (K *ptr) const noexcept |
| Копировать строку в указанный буфер. | |
| void | copy_to (K *buffer, size_t bufSize) |
| Копировать строку в указанный буфер. | |
| constexpr size_t | size () const |
| Размер строки в символах. | |
| constexpr std::basic_string_view< D > | to_sv () const noexcept |
| Конвертировать в std::basic_string_view. | |
| constexpr | operator std::basic_string_view< D, Traits > () const |
| Конвертировать в std::basic_string_view. | |
| constexpr std::basic_string< D, Traits, Allocator > | to_string () const |
| Конвертировать в std::basic_string. | |
| constexpr | operator std::basic_string< D, Traits, Allocator > () const |
| Конвертировать в std::basic_string. | |
| constexpr | operator str_piece () const noexcept |
| Преобразовать себя в "кусок строки", включающий всю строку. | |
| constexpr str_piece | to_str () const noexcept |
| Преобразовать себя в "кусок строки", включающий всю строку. | |
| constexpr str_piece | operator() (ptrdiff_t from, ptrdiff_t len=0) const noexcept |
| Получить часть строки как "str_src". | |
| 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 |
| Получить подстроку str_src с позиции от from до позиции to (не включая её). | |
| constexpr bool | operator! () const noexcept |
| Проверка на пустоту. | |
| constexpr 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 |
| Оператор сравнение строк на равенство. | |
| constexpr bool | operator== (T &&other) const noexcept |
| Оператор сравнения строки и строкового литерала на равенство. | |
| constexpr auto | operator<=> (const base &other) const noexcept |
| Оператор сравнения строк. | |
| constexpr auto | operator<=> (T &&other) const noexcept |
| Оператор сравнения строки и строкового литерала. | |
| constexpr int | compare_ia (str_piece text) const noexcept |
| Сравнение строк посимвольно без учёта регистра ASCII символов. | |
| constexpr bool | equal_ia (str_piece text) const noexcept |
| Равна ли строка другой строке посимвольно без учёта регистра ASCII символов. | |
| constexpr bool | less_ia (str_piece text) const noexcept |
| Меньше ли строка другой строки посимвольно без учёта регистра ASCII символов. | |
| constexpr size_t | find (str_piece pattern, size_t offset=0) const noexcept |
| Найти начало первого вхождения подстроки в этой строке. | |
| constexpr size_t | find (K s, size_t offset=0) const noexcept |
| Найти символ в этой строке. | |
| constexpr size_t | find_or_throw (str_piece pattern, size_t offset=0, Args &&... args) const noexcept |
| Найти начало первого вхождения подстроки в этой строке или выкинуть исключение. | |
| constexpr size_t | find_end (str_piece pattern, size_t offset=0) const noexcept |
| Найти конец вхождения подстроки в этой строке. | |
| constexpr size_t | find_or_all (str_piece pattern, size_t offset=0) const noexcept |
| Найти начало первого вхождения подстроки в этой строке или конец строки. | |
| constexpr size_t | find_or_all (K s, size_t offset=0) const noexcept |
| Найти символ в этой строке или конец строки. | |
| constexpr size_t | find_end_or_all (str_piece pattern, size_t offset=0) const noexcept |
| Найти конец первого вхождения подстроки в этой строке или конец строки. | |
| constexpr size_t | find_last (str_piece pattern, size_t offset=-1) const noexcept |
| Найти начало последнего вхождения подстроки в этой строке. | |
| constexpr size_t | find_last (K s, size_t offset=-1) const noexcept |
| Найти последнее вхождения символа в этой строке. | |
| constexpr size_t | find_end_of_last (str_piece pattern, size_t offset=-1) const noexcept |
| Найти конец последнего вхождения подстроки в этой строке. | |
| constexpr size_t | find_last_or_all (str_piece pattern, size_t offset=-1) const noexcept |
| Найти начало последнего вхождения подстроки в этой строке или конец строки. | |
| constexpr size_t | find_end_of_last_or_all (str_piece pattern, size_t offset=-1) const noexcept |
| Найти конец последнего вхождения подстроки в этой строке или конец строки. | |
| constexpr bool | contains (str_piece pattern, size_t offset=0) const noexcept |
| Содержит ли строка указанную подстроку. | |
| constexpr void | for_all_finded (const Op &op, str_piece pattern, size_t offset=0, size_t maxCount=0) const |
| Вызвать функтор для всех найденных вхождений подстроки в этой строке. | |
| constexpr To | find_all (str_piece pattern, size_t offset=0, size_t maxCount=0) const |
| Найти все вхождения подстроки в этой строке. | |
| constexpr size_t | find_first_of (str_piece pattern, size_t offset=0) const noexcept |
| Найти первое вхождение символа из заданного набора символов. | |
| constexpr std::pair< size_t, size_t > | find_first_of_idx (str_piece pattern, size_t offset=0) const noexcept |
| Найти первое вхождение символа из заданного набора символов. | |
| constexpr size_t | find_first_not_of (str_piece pattern, size_t offset=0) const noexcept |
| Найти первое вхождение символа не из заданного набора символов. | |
| constexpr size_t | find_last_of (str_piece pattern, size_t offset=str::npos) const noexcept |
| Найти последнее вхождение символа из заданного набора символов. | |
| constexpr std::pair< size_t, size_t > | find_last_of_idx (str_piece pattern, size_t offset=str::npos) const noexcept |
| Найти последнее вхождение символа из заданного набора символов. | |
| constexpr size_t | find_last_not_of (str_piece pattern, size_t offset=str::npos) const noexcept |
| Найти последнее вхождение символа не из заданного набора символов. | |
| constexpr my_type | substr (ptrdiff_t from, ptrdiff_t len=0) const |
| Получить подстроку. Работает аналогично operator(), только результат выдает того же типа, к которому применён метод. | |
| constexpr my_type | str_mid (size_t from, size_t len=-1) const |
| Получить часть строки объектом того же типа, к которому применён метод, аналогично mid. | |
| constexpr T | as_int () const noexcept |
| Преобразовать строку в число заданного типа. | |
| constexpr convert_result< T > | to_int () const noexcept |
| Преобразовать строку в число заданного типа. | |
| std::optional< double > | to_double_hex () const noexcept |
| Преобразовать строку в 16ричной записи в double. Пока работает только для char. | |
| constexpr T | splitf (str_piece delimiter, const Op &beforeFunc, size_t offset=0) const |
| Разделить строку на части по заданному разделителю, с возможным применением функтора к каждой подстроке. | |
| constexpr T | split (str_piece delimiter, size_t offset=0) const |
| Разделить строку на подстроки по заданному разделителю. | |
| constexpr bool | starts_with (str_piece prefix) const noexcept |
| Начинается ли строка с заданной подстроки. | |
| constexpr bool | starts_with_ia (str_piece prefix) const noexcept |
| Начинается ли строка с заданной подстроки без учёта регистра ASCII символов. | |
| 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 | is_ascii () const noexcept |
| Содержит ли строка только ASCII символы. | |
| R | upperred_only_ascii () const |
| Получить копию строки в верхнем регистре ASCII символов. | |
| R | lowered_only_ascii () const |
| Получить копию строки в нижнем регистре ASCII символов. | |
| R | replaced (str_piece pattern, str_piece repl, size_t offset=0, size_t maxCount=0) const |
| Получить копию строки с заменёнными вхождениями подстрок. | |
| constexpr 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 |
| Получить строку с удалением символов, заданных другой строкой, а также пробельных символов, справа. | |
| constexpr SplitterBase< K, str_piece > | splitter (str_piece delimiter) const |
Получить объект Splitter по заданному разделителю, который позволяет последовательно получать подстроки методом next(), пока is_done() false. | |
| constexpr | operator const K * () const noexcept |
| Оператор преобразования в нуль-терминированную C-строку. | |
| constexpr s_str_nt | to_nts (size_t from=0) const |
| Получить simple_str_nt, начиная с заданного символа. | |
| constexpr | operator s_str_nt () const |
| Преобразовать в simple_str_nt. | |
| constexpr const K * | c_str () const |
| Получить указатель на константный буфер символов строки | |
Открытые статические члены | |
| template<typename... T> | |
| static my_type | printf (const K *pattern, T &&... args) |
Получить строку, отформатированную с помощью std::sprintf. | |
| template<typename... T> | |
| static my_type | format (const FmtString< typename to_std_char_type< K >::type, 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 delimiter, bool tail=false, bool skip_empty=false, Args &&... args) |
| Конкатенация строк из контейнера в одну строку. | |
| static my_type | upperred_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 | upperred_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) |
| Создать копию переданной строки с заменой подстрок. | |
Защищенные члены | |
| constexpr allocator_t & | allocator () |
| Получить аллокатор. | |
| constexpr void | init_from_str_other (s_str other) |
| Инициализация из другого строкового объекта. | |
| constexpr void | init_str_repeat (size_t repeat, s_str pattern) |
| Инициализация повторением строки. | |
| constexpr void | init_symb_repeat (size_t count, K pad) |
| Инициализация повторением символа. | |
| constexpr void | init_str_expr (const A &expr) |
| Инициализация из строкового выражения. | |
| void | init_replaced (const From &f, s_str pattern, s_str repl, size_t offset=0, size_t maxCount=0) |
| Инициализация из строкового источника с заменой. | |
Класс иммутабельной владеющей строки.
| K | - тип символов. |
| Allocator | - тип аллокатора. |
"shared" строка. Класс с small string optimization плюс разделяемый иммутабельный буфер строки. Так как буфер строки в этом классе иммутабельный, то: Во-первых, нет нужды хранить размер выделенного буфера, мы его всё-равно не будем изменять. Во-вторых, появляется ещё один тип строки - строка, инициализированная строковым литералом. Для неё просто сохраняем указатель на символы, и не считаем ссылки. Таким образом, инициализация строкового объекта в программе литералом - ничего никуда не копирует - ни в себя, ни в динамическую память, и не стоит дороже по сравнению с инициализацией сырого указателя на строку, и даже ещё оптимальнее, так как ещё и сразу подставляет размер, а не вычисляет его в рантайме.
В случае разделяемого буфера размер строки всё-равно храним не в общем буфере, а в каждом объекте. Из-за SSO места всё-равно хватает, а в память лезть за длиной придётся меньше. Например, подсчитать сумму длин строк в векторе - пройдётся только по памяти в векторе.
Размеры для x64:
|
inlinenoexcept |
Конструктор пустой строки.
| ...args | - параметры для инициализации аллокатора. |
|
inline |
Конструктор из другого строкового объекта.
| other | - другой строковый объект, simple_str. |
| ...args | - параметры для инициализации аллокатора. |
|
inline |
Конструктор повторения строки.
| repeat | - количество повторов. |
| pattern | - строка, которую надо повторить. |
| ...args | - параметры для инициализации аллокатора. |
|
inline |
Конструктор повторения символа.
| count | - количество повторов. |
| pad | - символ, который надо повторить. |
| ...args | - параметры для инициализации аллокатора. |
|
inlineconstexpr |
|
inline |
Конструктор из строкового источника с заменой.
| f | - строковый объект, из которого берётся исходная строка. |
| pattern | - подстрока, которую надо заменить. |
| repl | - строка, на которую надо заменить. |
| offset | - начальная позиция для поиска подстрок. |
| maxCount | - максимальное количество замен, 0 - без ограничений. |
| ...args | - параметры для инициализации аллокатора. |
|
inlineconstexprnoexcept |
Конструктор копирования строки.
| other | - копируемая строка. |
|
inlineconstexprnoexcept |
Конструктор перемещения.
| other | - перемещаемая строка. |
|
inlineconstexpr |
Конструктор перемещения из lstring с совместимым с sstring внешним буфером.
| src | - перемещаемая строка. |
В случае, если символы в lstring лежат во внешнем аллоцированном буфере, просто забираем указатель на буфер, он нам подойдёт.
|
inline |
Инициализация из строкового литерала.
| s | - строковый литерал. |
| ...args | - параметры для инициализации аллокатора. |
В этом случае просто запоминаем указатель на строку и её длину.
|
inline |
Инициализация из строкового источника с другим типом символов. Конвертирует через UTF.
| O | - тип жругих символов. |
|
inlineconstexprnoexceptinherited |
Преобразовать строку в число заданного типа.
| T | - желаемый тип числа. |
| CheckOverflow | - проверять на переполнение. |
| Base | - основание счисления числа, от -1 до 36, кроме 1.
|
| SkipWs | - пропускать пробельные символы в начале строки. |
| AllowSign | - допустим ли знак '+' перед числом. |
|
inlineinherited |
Преобразовать строку в double.
| t | - переменная, в которую записывается результат. |
|
inlineconstexprinherited |
Преобразовать строку в целое число.
Так как as_number(double& t) перекрывает видимость as_number из базового класса, придётся добавить его ещё раз.
| T | - тип числа, выводится из аргумента. |
| t | - переменная, в которую записывается результат. |
|
inlineconstexprinherited |
Получить символ на заданной позиции .
| idx | - индекс символа. Для отрицательных значений отсчитывается от конца строки. |
Не производит проверку на выход за границы строки.
|
inlineconstexprinherited |
Получить указатель на константный буфер символов строки
|
inlineconstexprinherited |
Сравнение строк посимвольно.
| o | - другая строка. |
|
inlineconstexprnoexceptinherited |
Сравнение строк посимвольно без учёта регистра ASCII символов.
| text | - другая строка. |
|
inlinenoexceptinherited |
Сравнение строк посимвольно без учёта регистра Unicode символов первой плоскости (<0xFFFF).
| text | - другая строка. |
|
inlineconstexprnoexceptinherited |
Содержит ли строка указанную подстроку.
| pattern | - искомая строка. |
| offset | - с какой позиции начинать поиск. |
|
inlineinherited |
Копировать строку в указанный буфер.
Метод добавляет \0 после скопированных символов. Не выходит за границы буфера.
| buffer | - указатель на буфер |
| bufSize | - размер буфера в символах. |
|
inlineconstexprnoexceptinherited |
Заканчивается ли строка указанной подстрокой.
| suffix | - подстрока. |
|
inlineconstexprnoexceptinherited |
Заканчивается ли строка указанной подстрокой без учёта регистра ASCII символов.
| suffix | - подстрока. |
|
inlineconstexprnoexceptinherited |
Заканчивается ли строка указанной подстрокой без учёта регистра Unicode символов первой плоскости (<0xFFFF).
| suffix | - подстрока. |
|
inlineconstexprnoexceptinherited |
Сравнение строк на равенство.
| other | - другая строка. |
|
inlineconstexprnoexceptinherited |
Равна ли строка другой строке посимвольно без учёта регистра ASCII символов.
| text | - другая строка. |
|
inlinenoexceptinherited |
Равна ли строка другой строке посимвольно без учёта регистра Unicode символов первой плоскости (<0xFFFF).
| text | - другая строка. |
|
inlineconstexprnoexceptinherited |
Найти символ в этой строке.
| s | - искомый символ. |
| offset | - с какой позиции начинать поиск. |
|
inlineconstexprnoexceptinherited |
Найти начало первого вхождения подстроки в этой строке.
| pattern | - искомая строка. |
| offset | - с какой позиции начинать поиск. |
|
inlineconstexprinherited |
Найти все вхождения подстроки в этой строке.
| pattern | - искомая подстрока. |
| offset | - позиция начала поиска. |
| maxCount | - максимальное количество обрабатываемых вхождений, 0 - без ограничений. |
|
inlineconstexprnoexceptinherited |
Найти конец вхождения подстроки в этой строке.
| pattern | - искомая строка. |
| offset | - с какой позиции начинать поиск. |
|
inlineconstexprnoexceptinherited |
Найти конец последнего вхождения подстроки в этой строке.
| pattern | - искомая строка. |
| offset | - c какой позиции вести поиск в обратную сторону, -1 - с самого конца. |
|
inlineconstexprnoexceptinherited |
Найти конец последнего вхождения подстроки в этой строке или конец строки.
| pattern | - искомая строка. |
| offset | - c какой позиции вести поиск в обратную сторону, -1 - с самого конца. |
|
inlineconstexprnoexceptinherited |
Найти конец первого вхождения подстроки в этой строке или конец строки.
| pattern | - искомая строка. |
| offset | - с какой позиции начинать поиск. |
|
inlineconstexprnoexceptinherited |
Найти первое вхождение символа не из заданного набора символов.
| pattern | - строка, задающая набор символов. |
| offset | - позиция начала поиска. |
|
inlineconstexprnoexceptinherited |
Найти первое вхождение символа из заданного набора символов.
| pattern | - строка, задающая набор искомых символов. |
| offset | - позиция начала поиска. |
|
inlineconstexprnoexceptinherited |
Найти первое вхождение символа из заданного набора символов.
| pattern | - строка, задающая набор искомых символов. |
| offset | - позиция начала поиска. |
|
inlineconstexprnoexceptinherited |
Найти последнее вхождения символа в этой строке.
| s | - искомый символ. |
| offset | - c какой позиции вести поиск в обратную сторону, -1 - с самого конца. |
|
inlineconstexprnoexceptinherited |
Найти начало последнего вхождения подстроки в этой строке.
| pattern | - искомая строка. |
| offset | - c какой позиции вести поиск в обратную сторону, -1 - с самого конца. |
|
inlineconstexprnoexceptinherited |
Найти последнее вхождение символа не из заданного набора символов.
| pattern | - строка, задающая набор символов. |
| offset | - позиция начала поиска. |
|
inlineconstexprnoexceptinherited |
Найти последнее вхождение символа из заданного набора символов.
| pattern | - строка, задающая набор искомых символов. |
| offset | - позиция начала поиска. |
|
inlineconstexprnoexceptinherited |
Найти последнее вхождение символа из заданного набора символов.
| pattern | - строка, задающая набор искомых символов. |
| offset | - позиция начала поиска. |
|
inlineconstexprnoexceptinherited |
Найти начало последнего вхождения подстроки в этой строке или конец строки.
| pattern | - искомая строка. |
| offset | - c какой позиции вести поиск в обратную сторону, -1 - с самого конца. |
|
inlineconstexprnoexceptinherited |
Найти символ в этой строке или конец строки.
| s | - искомый символ. |
| offset | - с какой позиции начинать поиск. |
|
inlineconstexprnoexceptinherited |
Найти начало первого вхождения подстроки в этой строке или конец строки.
| pattern | - искомая строка. |
| offset | - с какой позиции начинать поиск. |
|
inlineconstexprnoexceptinherited |
Найти начало первого вхождения подстроки в этой строке или выкинуть исключение.
| Exc | - тип исключения. |
| Args... | - типы параметров для конструирования исключения, выводятся из аргументов. |
| pattern | - искомая строка. |
| offset | - с какой позиции начинать поиск. |
| args | - аргументы для конструктора исключения. |
|
inlineconstexprinherited |
Вызвать функтор для всех найденных вхождений подстроки в этой строке.
| op | - функтор, принимающий строку. |
| pattern | - искомая подстрока. |
| offset | - позиция начала поиска. |
| maxCount | - максимальное количество обрабатываемых вхождений, 0 - без ограничений. |
|
inlinestatic |
Получить строку, отформатированную с помощью std::format.
| fmtString | - константная форматная строка. |
| ...args | - аргументы для std::format. |
|
inlineconstexprnoexceptinherited |
Получить подстроку str_src с позиции от from до позиции to (не включая её).
Для производительности метод никак не проверяет выходы за границы строки, используйте в сценариях, когда точно знаете, что это позиции внутри строки и to >= from.
| from | - начальная позиция. |
| to | - конечная позиция (не входит в результат). |
|
inlineconstexprprotectedinherited |
Инициализация из другого строкового объекта.
| other | - другой строковый объект, simple_str. |
|
inlineprotectedinherited |
Инициализация из строкового источника с заменой.
| f | - строковый объект, из которого берётся исходная строка. |
| pattern | - подстрока, которую надо заменить. |
| repl | - строка, на которую надо заменить. |
| offset | - начальная позиция для поиска подстрок. |
| maxCount | - максимальное количество замен, 0 - без ограничений. |
|
inlineconstexprprotectedinherited |
|
inlineconstexprprotectedinherited |
Инициализация повторением строки.
| repeat | - количество повторов. |
| pattern | - строка, которую надо повторить. |
|
inlineconstexprprotectedinherited |
Инициализация повторением символа.
| count | - количество повторов. |
| pad | - символ, который надо повторить. |
|
inlinestaticinherited |
Конкатенация строк из контейнера в одну строку.
| strings | - контейнер со строками. |
| delimiter | - разделитель, добавляемый между строками. |
| tail | - добавить разделитель после последней строки. |
| skip_empty | - пропускать пустые строки без добавления разделителя. |
| ...args | - параметры для инициализации аллокатора. |
Функция служит для слияния контейнера строк в одну строку с разделителем.
Стоит отметить, что при заранее известном разделителе лучше пользоваться строковым выражением e_join.
В этом случае компилятор может лучше оптимизировать код слияния строк.
|
inlineconstexprnoexceptinherited |
Меньше ли строка другой строки посимвольно без учёта регистра 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 | - параметры для инициализации аллокатора. |
|
inlineconstexprnoexcept |
Сделать строку пустой.
|
inlineconstexprnoexceptinherited |
Получить часть строки как "кусок строки".
| from | - количество символов от начала строки. При превышении размера строки вернёт пустую строку. |
| len | - количество символов в получаемом "куске". При выходе за пределы строки вернёт всё до конца строки. |
|
inlineconstexprnoexceptinherited |
Оператор преобразования в нуль-терминированную C-строку.
|
inlineconstexprinherited |
Преобразовать в simple_str_nt.
|
inlineconstexprinherited |
Конвертировать в std::basic_string.
|
inlineconstexprinherited |
Конвертировать в std::basic_string_view.
|
inlineconstexprnoexceptinherited |
Преобразовать себя в "кусок строки", включающий всю строку.
|
inlineconstexprnoexceptinherited |
Получить часть строки как "str_src".
| from | - количество символов от начала строки. |
| len | - количество символов в получаемом "куске". |
Если from меньше нуля, то отсчитывается -from символов от конца строки в сторону начала. Если len меньше или равно нулю, то отсчитать -len символов от конца строки
|
inlineconstexprnoexceptinherited |
Оператор сравнения строк.
| other | - другая строка. |
|
inlineconstexprnoexceptinherited |
Оператор сравнения строки и строкового литерала.
| other | - строковый литерал. |
|
inlineconstexpr |
Оператор присвоения другой строки типа lstring.
| other | - другая строка. |
|
inlineconstexpr |
Оператор присвоения строкового выражения.
| expr | - строковое выражения. |
В строковом выражение допустимо ссылаться на части этой же строки, так как сначала создаётся копия.
|
inlineconstexpr |
Оператор присвоения перемещаемой строки типа lstring с совместимым буфером.
| other | - другая строка. |
|
inlineconstexprnoexcept |
Оператор присвоения другой строки того же типа.
| other | - другая строка. |
|
inlineconstexpr |
Оператор присвоения другой строки другого типа.
| other | - другая строка. |
|
inlineconstexpr |
Оператор присвоения строкового литерала.
| other | - строковый литера. |
|
inlineconstexprnoexceptinherited |
Оператор сравнение строк на равенство.
| other | - другая строка. |
|
inlineconstexprnoexceptinherited |
Оператор сравнения строки и строкового литерала на равенство.
| other | - строковый литерал. |
|
inlineconstexprnoexceptinherited |
Копировать строку в указанный буфер.
Метод предполагает, что размер выделенного буфера достаточен для всей строки, т.е. предварительно была запрошена length(). Не добавляет \0.
| ptr | - указатель на буфер. |
|
inlineconstexprnoexceptinherited |
Является ли эта строка началом другой строки.
| text | - другая строка. |
|
inlinestatic |
Получить строку, отформатированную с помощью std::sprintf.
| pattern | - форматная строка. |
| ...args | - аргументы для sprintf. |
Для Windows поддерживаются posix позиционные аргументы, используется _sprintf_p.
|
inlineinherited |
Получить копию строки с заменёнными вхождениями подстрок.
| R | - желаемый тип строки, по умолчанию тот же, чей метод вызывался. |
| pattern | - искомая подстрока. |
| repl | - строка, на которую заменять. |
| offset | - начальная позиция поиска. |
| maxCount | - максимальное количество замен, 0 - без ограничений. |
|
inlinestaticinherited |
Создать копию переданной строки с заменой подстрок.
| f | - строка источник. |
| pattern | - подстрока, которую надо заменить. |
| repl | - строка, на которую надо заменить. |
| offset | - начальная позиция для поиска подстрок. |
| maxCount | - максимальное количество замен, 0 - без ограничений. |
| ...args | - параметры для инициализации аллокатора. |
|
inlineconstexprinherited |
Размер строки в символах.
|
inlineconstexprinherited |
Разделить строку на подстроки по заданному разделителю.
| T | - тип контейнера для результата. |
| delimiter | - разделитель. |
| offset | - позиция начала поиска разделителя. |
|
inlineconstexprinherited |
Разделить строку на части по заданному разделителю, с возможным применением функтора к каждой подстроке.
| T | - тип контейнера для складывания подстрок. |
| delimiter | - подстрока разделитель. |
| beforeFunc | - функтор для применения к найденным подстрокам, перед помещением их в результат. |
| offset | - позиция начала поиска разделителя. |
Для каждой найденной подстроки, если функтор может принять её, вызывается функтор, и подстрока присваивается результату функтора. Далее подстрока пытается добавиться в результат, вызывая один из его методов - emplace_back, push_back, operator[]. Если ни одного этого метода нет, ничего не делается, только вызов функтора. operator[] пытается применится, если у результата можно получить размер через std::size и мы не выходим за этот размер. При этом, если найденная подстрока получается совпадающей со всей строкой - в результат пытается поместить не подстроку, а весь объект строки, что позволяет, например, эффективно копировать sstring.
|
inlineconstexprinherited |
Получить объект Splitter по заданному разделителю, который позволяет последовательно получать подстроки методом next(), пока is_done() false.
| delimiter | - разделитель. |
|
inlineconstexprnoexceptinherited |
Начинается ли строка с заданной подстроки.
| prefix | - подстрока. |
|
inlineconstexprnoexceptinherited |
Начинается ли строка с заданной подстроки без учёта регистра ASCII символов.
| prefix | - подстрока. |
|
inlinenoexceptinherited |
Начинается ли строка с заданной подстроки без учёта регистра Unicode символов первой плоскости (<0xFFFF).
| prefix | - подстрока. |
|
inlineconstexprinherited |
Получить часть строки объектом того же типа, к которому применён метод, аналогично mid.
| from | - количество символов от начала строки. При превышении размера строки вернёт пустую строку. |
| len | - количество символов в получаемом "куске". При выходе за пределы строки вернёт всё до конца строки. |
|
inlineconstexprinherited |
Сравнение с C-строкой посимвольно.
| text | - другая строка. |
|
inlineconstexprinherited |
Получить подстроку. Работает аналогично operator(), только результат выдает того же типа, к которому применён метод.
| from | - количество символов от начала строки. Если меньше нуля, отсчитывается от конца строки в сторону начала. |
| len | - количество символов в получаемом "куске". Если меньше или равно нулю, то отсчитать len символов от конца строки. |
|
inlinenoexceptinherited |
Преобразовать строку в double.
|
inlinenoexceptinherited |
Преобразовать строку в 16ричной записи в double. Пока работает только для char.
|
inlineconstexprnoexceptinherited |
Преобразовать строку в число заданного типа.
| T | - желаемый тип числа. |
| CheckOverflow | - проверять на переполнение. |
| Base | - основание счисления числа, от -1 до 36, кроме 1.
|
| SkipWs | - пропускать пробельные символы в начале строки. Пропускаются все символы с ASCII кодами <= 32. |
| AllowSign | - допустим ли знак '+' перед числом. |
|
inlineconstexprinherited |
Получить simple_str_nt, начиная с заданного символа.
| from | - позиция начального символа, по умолчанию 0. |
|
inlineconstexprnoexceptinherited |
Преобразовать себя в "кусок строки", включающий всю строку.
|
inlineconstexprinherited |
Конвертировать в std::basic_string.
|
inlineconstexprnoexceptinherited |
Конвертировать в std::basic_string_view.
|
inlineconstexprinherited |
Получить строку с удалением пробельных символов слева и справа.
| R | - желаемый тип строки, по умолчанию str_src. |
|
inlineinherited |
Получить строку с удалением символов, заданных другой строкой, слева и справа.
| R | - желаемый тип строки, по умолчанию str_src. |
| pattern | - строка, задающая символы, которые будут обрезаться. |
|
inlineinherited |
Получить строку с удалением символов, заданных строковым литералом, слева и справа.
| R | - желаемый тип строки, по умолчанию str_src. |
| pattern | - строковый литерал, задающий символы, которые будут обрезаться. |
|
inlineinherited |
Получить строку с удалением пробельных символов слева.
| R | - желаемый тип строки, по умолчанию str_src. |
|
inlineinherited |
Получить строку с удалением символов, заданных другой строкой, слева.
| R | - желаемый тип строки, по умолчанию str_src. |
| pattern | - строка, задающая символы, которые будут обрезаться. |
|
inlineinherited |
Получить строку с удалением символов, заданных строковым литералом, слева.
| R | - желаемый тип строки, по умолчанию str_src. |
| pattern | - строковый литерал, задающий символы, которые будут обрезаться. |
|
inlineinherited |
Получить строку с удалением символов, заданных другой строкой, а также пробельных символов, слева.
| R | - желаемый тип строки, по умолчанию str_src. |
| pattern | - строка, задающая символы, которые будут обрезаться. |
|
inlineinherited |
Получить строку с удалением символов, заданных строковым литералом, а также пробельных символов, слева.
| R | - желаемый тип строки, по умолчанию str_src. |
| pattern | - строковый литерал, задающий символы, которые будут обрезаться. |
|
inlineinherited |
Получить строку с удалением пробельных символов справа.
| R | - желаемый тип строки, по умолчанию str_src. |
|
inlineinherited |
Получить строку с удалением символов, заданных другой строкой, справа.
| R | - желаемый тип строки, по умолчанию str_src. |
| pattern | - строка, задающая символы, которые будут обрезаться. |
|
inlineinherited |
Получить строку с удалением символов, заданных строковым литералом, справа.
| R | - желаемый тип строки, по умолчанию str_src. |
| pattern | - строковый литерал, задающий символы, которые будут обрезаться. |
|
inlineinherited |
Получить строку с удалением символов, заданных другой строкой, а также пробельных символов, справа.
| R | - желаемый тип строки, по умолчанию str_src. |
| pattern | - строка, задающая символы, которые будут обрезаться. |
|
inlineinherited |
Получить строку с удалением символов, заданных строковым литералом, а также пробельных символов, справа.
| R | - желаемый тип строки, по умолчанию str_src. |
| pattern | - строковый литерал, задающий символы, которые будут обрезаться. |
|
inlineinherited |
Получить строку с удалением символов, заданных другой строкой, а также пробельных символов, слева и справа.
| R | - желаемый тип строки, по умолчанию str_src. |
| pattern | - строка, задающая символы, которые будут обрезаться. |
|
inlineinherited |
Получить строку с удалением символов, заданных строковым литералом, а также пробельных символов, слева и справа.
| R | - желаемый тип строки, по умолчанию str_src. |
| 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.
| fmtString | - форматная строка. |
| ...args | - аргументы для std::vformat. |