simstr 1.6.1
Yet another strings library
 
Загрузка...
Поиск...
Не найдено
Шаблон класса simstr::lstring< K, N, forShared, Allocator >

Класс мутабельной, владеющей строки. Содержит внутренний буфер для строк заданного размера. Подробнее...

#include <sstring.h>

Граф наследования:simstr::lstring< K, N, forShared, Allocator >:
simstr::str_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, true > simstr::str_mutable< K, lstring< K, N, false, allocator_string > > simstr::str_storable< K, lstring< K, N, false, allocator_string >, allocator_string > simstr::from_utf_convertible< K, lstring< K, N, false, allocator_string > > simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >

Открытые типы

enum  : size_t { LocalCapacity = N | (sizeof(void*) / sizeof(K) - 1) }
 

Открытые члены

template<typename... Args>
requires (std::is_constructible_v<allocator_t, Args...> && sizeof...(Args) > 0)
constexpr lstring (Args &&... args) noexcept(std::is_nothrow_constructible_v< allocator_t, Args... >)
 Создать пустой объект.
 
template<typename... Args>
requires std::is_constructible_v<allocator_t, Args...>
constexpr lstring (s_str other, Args &&... args)
 Конструктор из другого строкового объекта.
 
template<typename... Args>
requires std::is_constructible_v<allocator_t, Args...>
constexpr lstring (size_t repeat, s_str pattern, Args &&... args)
 Конструктор повторения строки.
 
template<typename... Args>
requires std::is_constructible_v<allocator_t, Args...>
constexpr lstring (size_t count, K pad, Args &&... args)
 Конструктор повторения символа.
 
template<typename... Args>
requires std::is_constructible_v<allocator_t, Args...>
constexpr lstring (const StrExprForType< K > auto &expr, Args &&... args)
 Конструктор из строкового выражения.
 
template<StrType< K > From, typename... Args>
requires std::is_constructible_v<allocator_t, Args...>
constexpr lstring (const From &f, s_str pattern, s_str repl, size_t offset=0, size_t maxCount=0, Args &&... args)
 Конструктор из строкового источника с заменой.
 
constexpr lstring (const my_type &other)
 Копирование из другой строки такого же типа.
 
template<typename... Args>
requires (sizeof...(Args) > 0 && std::is_convertible_v<allocator_t, Args...>)
constexpr lstring (const my_type &other, Args &&... args)
 Копирование из другой строки такого же типа, но с другим аллокатором.
 
template<typename T, size_t I = const_lit_for<K, T>::Count, typename... Args>
requires std::is_constructible_v<allocator_t, Args...>
constexpr lstring (T &&value, Args &&... args)
 Конструктор из строкового литерала.
 
constexpr lstring (my_type &&other) noexcept
 Конструктор перемещения из строки такого же типа.
 
template<typename Op, typename... Args>
requires (std::is_constructible_v<Allocator, Args...> && (std::is_invocable_v<Op, my_type&> || std::is_invocable_v<Op, K*, size_t>))
 lstring (const Op &op, Args &&... args)
 Конструктор заполнения с помощью функтора (см. str_mutable::fill).
 
my_typeoperator= (const my_type &other)
 Оператор присваивания копией из строки такого же типа.
 
my_typeoperator= (my_type &&other) noexcept
 Оператор присваивания перемещением из строки такого же типа.
 
my_typeoperator= (simple_str< K > other)
 Оператор присваивания из simple_str.
 
template<typename T, size_t S = const_lit_for<K, T>::Count>
my_typeoperator= (T &&other)
 Оператор присваивания строкового литерала.
 
my_typeoperator= (const StrExprForType< K > auto &expr)
 Оператор присваивания строкового выражения.
 
constexpr size_t length () const noexcept
 Длина строки.
 
constexpr const K * symbols () const noexcept
 Указатель на константные символы.
 
constexpr K * str () noexcept
 Указатель на буфер строки.
 
constexpr bool is_empty () const noexcept
 Пустая ли строка.
 
constexpr bool empty () const noexcept
 Пустая ли строка, для совместимости с std::string.
 
constexpr size_t capacity () const noexcept
 Текущая ёмкость буфера строки.
 
constexpr K * reserve_no_preserve (size_t newSize)
 Выделить буфер, достаточный для размещения newSize символов плюс завершающий ноль.
 
constexpr K * reserve (size_t newSize)
 Выделить буфер, достаточный для размещения newSize символов плюс завершающий ноль.
 
constexpr K * set_size (size_t newSize)
 Устанавливает размер текущей строки, при необходимости выделяя место.
 
constexpr bool is_local () const noexcept
 Узнать, локальный или внешний буфер используется для символов.
 
constexpr void define_size ()
 Определить длину строки. Ищет символ 0 в буфере строки до его ёмкости, после чего устаналивает длину строки по найденному 0.
 
constexpr void shrink_to_fit ()
 Уменьшает размер внешнего буфера до минимально возможного для хранения строки. Если строка уместится во внутренний буфер - копирует её в него и освобождает внешний буфер.
 
constexpr void clear ()
 Делает строку пустой, не меняя буфер строки.
 
constexpr void reset ()
 Делает строку пустой и освобождает внешний буфер, если он был.
 
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).
 
upperred () const
 Получить копию строки в верхнем регистре Unicode символов первой плоскости (<0xFFFF).
 
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 символы.
 
upperred_only_ascii () const
 Получить копию строки в верхнем регистре ASCII символов.
 
lowered_only_ascii () const
 Получить копию строки в нижнем регистре ASCII символов.
 
replaced (str_piece pattern, str_piece repl, size_t offset=0, size_t maxCount=0) const
 Получить копию строки с заменёнными вхождениями подстрок.
 
constexpr R trimmed () const
 Получить строку с удалением пробельных символов слева и справа.
 
trimmed (T &&pattern) const
 Получить строку с удалением символов, заданных строковым литералом, слева и справа.
 
trimmed (str_piece pattern) const
 Получить строку с удалением символов, заданных другой строкой, слева и справа.
 
trimmed_left () const
 Получить строку с удалением пробельных символов слева.
 
trimmed_left (T &&pattern) const
 Получить строку с удалением символов, заданных строковым литералом, слева.
 
trimmed_left (str_piece pattern) const
 Получить строку с удалением символов, заданных другой строкой, слева.
 
trimmed_right () const
 Получить строку с удалением пробельных символов справа.
 
trimmed_right (T &&pattern) const
 Получить строку с удалением символов, заданных строковым литералом, справа.
 
trimmed_right (str_piece pattern) const
 Получить строку с удалением символов, заданных другой строкой, справа.
 
trimmed_with_spaces (T &&pattern) const
 Получить строку с удалением символов, заданных строковым литералом, а также пробельных символов, слева и справа.
 
trimmed_with_spaces (str_piece pattern) const
 Получить строку с удалением символов, заданных другой строкой, а также пробельных символов, слева и справа.
 
trimmed_left_with_spaces (T &&pattern) const
 Получить строку с удалением символов, заданных строковым литералом, а также пробельных символов, слева.
 
trimmed_left_with_spaces (str_piece pattern) const
 Получить строку с удалением символов, заданных другой строкой, а также пробельных символов, слева.
 
trimmed_right_with_spaces (T &&pattern) const
 Получить строку с удалением символов, заданных строковым литералом, а также пробельных символов, справа.
 
trimmed_right_with_spaces (str_piece pattern) const
 Получить строку с удалением символов, заданных другой строкой, а также пробельных символов, справа.
 
constexpr SplitterBase< K, str_piecesplitter (str_piece delimiter) const
 Получить объект Splitter по заданному разделителю, который позволяет последовательно получать подстроки методом next(), пока is_done() false.
 
 operator K* () noexcept
 Получить указатель на буфер строки.
 
lstring< K, N, false, allocator_string > & trim ()
 Удалить пробельные символы в начале и в конце строки.
 
lstring< K, N, false, allocator_string > & trim (T &&pattern)
 Удалить символы, входящие в строковый литерал, в начале и в конце строки.
 
lstring< K, N, false, allocator_string > & trim (str_piece pattern)
 Удалить символы, входящие в переданную строку, в начале и в конце строки.
 
lstring< K, N, false, allocator_string > & trim_left ()
 Удалить пробельные символы в начале строки.
 
lstring< K, N, false, allocator_string > & trim_left (T &&pattern)
 Удалить символы, входящие в строковый литерал, в начале строки.
 
lstring< K, N, false, allocator_string > & trim_left (str_piece pattern)
 Удалить символы, входящие в переданную строку, в начале строки.
 
lstring< K, N, false, allocator_string > & trim_right ()
 Удалить пробельные символы в конце строки.
 
lstring< K, N, false, allocator_string > & trim_right (T &&pattern)
 Удалить символы, входящие в строковый литерал, в конце строки.
 
lstring< K, N, false, allocator_string > & trim_right (str_piece pattern)
 Удалить символы, входящие в переданную строку, в конце строки.
 
lstring< K, N, false, allocator_string > & trim_with_spaces (T &&pattern)
 Удалить символы, входящие в строковый литерал, а также пробельные символы, в начале и в конце строки.
 
lstring< K, N, false, allocator_string > & trim_with_spaces (str_piece pattern)
 Удалить символы, входящие в переданную строку, а также пробельные символы, в начале и в конце строки.
 
lstring< K, N, false, allocator_string > & trim_left_with_spaces (T &&pattern)
 Удалить символы, входящие в строковый литерал, а также пробельные символы, в начале строки.
 
lstring< K, N, false, allocator_string > & trim_left_with_spaces (str_piece pattern)
 Удалить символы, входящие в переданную строку, а также пробельные символы, в начале строки.
 
lstring< K, N, false, allocator_string > & trim_right_with_wpaces (T &&pattern)
 Удалить символы, входящие в строковый литерал, а также пробельные символы, в конце строки.
 
lstring< K, N, false, allocator_string > & trim_right_with_spaces (str_piece pattern)
 Удалить символы, входящие в переданную строку, а также пробельные символы, в конце строки.
 
lstring< K, N, false, allocator_string > & upper_only_ascii ()
 Преобразовать в верхний регистр ASCII символы.
 
lstring< K, N, false, allocator_string > & lower_only_ascii ()
 Преобразовать в нижний регистр ASCII символы.
 
lstring< K, N, false, allocator_string > & upper ()
 Преобразовать в верхний регистр Unicode символы первой плоскости (<0xFFFF).
 
lstring< K, N, false, allocator_string > & lower ()
 Преобразовать в нижний регистр Unicode символы первой плоскости (<0xFFFF).
 
lstring< K, N, false, allocator_string > & append (str_piece other)
 Добавить другую строку в конец строки.
 
lstring< K, N, false, allocator_string > & append (const A &expr)
 Добавить строковое выражение в конец строки.
 
lstring< K, N, false, allocator_string > & operator+= (str_piece other)
 Добавить другую строку в конец строки.
 
lstring< K, N, false, allocator_string > & operator+= (const A &expr)
 Добавить строковое выражение в конец строки.
 
lstring< K, N, false, allocator_string > & append_in (size_t pos, str_piece other)
 Добавить другую строку, начиная с заданной позиции.
 
lstring< K, N, false, allocator_string > & append_in (size_t pos, const A &expr)
 Добавить строковое выражение, начиная с заданной позиции.
 
lstring< K, N, false, allocator_string > & change (size_t from, size_t len, str_piece other)
 Заменить кусок строки на другую строку.
 
lstring< K, N, false, allocator_string > & change (size_t from, size_t len, const A &expr)
 Заменить кусок строки на строковое выражение.
 
lstring< K, N, false, allocator_string > & insert (size_t to, str_piece other)
 Вставить строку в указанную позицию.
 
lstring< K, N, false, allocator_string > & insert (size_t to, const A &expr)
 Вставить строковое выражение в указанную позицию.
 
lstring< K, N, false, allocator_string > & remove (size_t from, size_t len)
 Удалить часть строки.
 
lstring< K, N, false, allocator_string > & prepend (str_piece other)
 Добавить другую строку в начало строки.
 
lstring< K, N, false, allocator_string > & prepend (const A &expr)
 Добавить строковое выражение в начало строки.
 
lstring< K, N, false, allocator_string > & replace (str_piece pattern, str_piece repl, size_t offset=0, size_t maxCount=0)
 Заменить вхождения подстроки на другую строку.
 
lstring< K, N, false, allocator_string > & replace_from (const From &f, str_piece pattern, str_piece repl, size_t offset=0, size_t maxCount=0)
 Скопировать строку-источник, заменив вхождения подстрок на другую строку.
 
lstring< K, N, false, allocator_string > & fill (size_t from, const Op &fillFunction)
 Заполнение буфера строки с помощью функтора.
 
lstring< K, N, false, allocator_string > & operator<< (const Op &fillFunction)
 Заполняет строку методом fill с нулевой позиции.
 
lstring< K, N, false, allocator_string > & operator<< (const Op &fillFunction)
 Вызывает переданный функтор, передав ссылку на себя.
 
lstring< K, N, false, allocator_string > & operator<<= (const Op &fillFunction)
 Заполняет строку методом fill после конца строки.
 
lstring< K, N, false, allocator_string > & printf_from (size_t from, const K *format, T &&... args)
 Добавляет отформатированный с помощью sprintf вывод, начиная с указанной позиции.
 
lstring< K, N, false, allocator_string > & printf (const K *format, T &&... args)
 Форматирует строку помощью sprintf.
 
lstring< K, N, false, allocator_string > & append_printf (const K *format, T &&... args)
 Добавляет отформатированный с помощью sprintf вывод в конец строки.
 
lstring< K, N, false, allocator_string > & format_from (size_t from, const FmtString< fmt_type, T... > &format, T &&... args)
 Добавляет отформатированный с помощью std::format вывод, начиная с указанной позиции.
 
lstring< K, N, false, allocator_string > & vformat_from (size_t from, size_t max_write, str_piece format, T &&... args)
 Добавляет отформатированный с помощью std::vformat вывод, начиная с указанной позиции.
 
lstring< K, N, false, allocator_string > & format (const FmtString< fmt_type, T... > &pattern, T &&... args)
 Форматирует строку с помощью std::format.
 
lstring< K, N, false, allocator_string > & append_formatted (const FmtString< fmt_type, T... > &format, T &&... args)
 Добавляет отформатированный с помощью std::format вывод в конец строки.
 
lstring< K, N, false, allocator_string > & vformat (str_piece format, T &&... args)
 Форматирует строку с помощью std::vformat.
 
lstring< K, N, false, allocator_string > & append_vformatted (str_piece format, T &&... args)
 Добавляет отформатированный с помощью std::vformat вывод в конец строки.
 
lstring< K, N, false, allocator_string > & vformat_n (size_t max_write, str_piece format, T &&... args)
 Форматирует строку с помощью std::vformat не более указанного размера.
 
lstring< K, N, false, allocator_string > & append_vformatted_n (size_t max_write, str_piece format, T &&... args)
 Добавляет отформатированный с помощью std::vformat вывод в конец строки, записывая не более указанного количества символов.
 
lstring< K, N, false, allocator_string > & with (const Op &fillFunction, Args &&... args)
 Вызов функтора со строкой и переданными аргументами.
 
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
 Получить указатель на константный буфер символов строки
 

Открытые статические члены

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)
 Инициализация из строкового источника с заменой.
 

Подробное описание

template<typename K, size_t N, bool forShared = false, Allocatorable Allocator = allocator_string>
class simstr::lstring< K, N, forShared, Allocator >

Класс мутабельной, владеющей строки. Содержит внутренний буфер для строк заданного размера.

Параметры шаблона
K- тип символа.
N- размер внутреннего строкового буфера не менее N.
forShared- аллоцировать внешний буфер в формате, совместимом с sstring.
Allocator- тип аллокатора.

"Локальная" строка. Хранит в себе указатель на символы и длину строки, а за ней либо сами данные до N символов + нуль, либо если данные длиннее N, то размер выделенного буфера. При этом, если планируется потом результат переместить в sstring, то для динамического буфера выделяется +n байтов, чтобы потом не копировать данные.

Перечисления

◆ anonymous enum

template<typename K, size_t N, bool forShared = false, Allocatorable Allocator = allocator_string>
anonymous enum : size_t
Элементы перечислений
LocalCapacity 

Размер внутреннего буфера в символах

Конструктор(ы)

◆ lstring() [1/11]

template<typename K, size_t N, bool forShared = false, Allocatorable Allocator = allocator_string>
template<typename... Args>
requires (std::is_constructible_v<allocator_t, Args...> && sizeof...(Args) > 0)
simstr::lstring< K, N, forShared, Allocator >::lstring ( Args &&... args)
inlineconstexprnoexcept

Создать пустой объект.

Аргументы
...args- параметры для инициализации аллокатора.

◆ lstring() [2/11]

template<typename K, size_t N, bool forShared = false, Allocatorable Allocator = allocator_string>
template<typename... Args>
requires std::is_constructible_v<allocator_t, Args...>
simstr::lstring< K, N, forShared, Allocator >::lstring ( s_str other,
Args &&... args )
inlineconstexpr

Конструктор из другого строкового объекта.

Аргументы
other- другой строковый объект, simple_str.
...args- параметры для инициализации аллокатора.

◆ lstring() [3/11]

template<typename K, size_t N, bool forShared = false, Allocatorable Allocator = allocator_string>
template<typename... Args>
requires std::is_constructible_v<allocator_t, Args...>
simstr::lstring< K, N, forShared, Allocator >::lstring ( size_t repeat,
s_str pattern,
Args &&... args )
inlineconstexpr

Конструктор повторения строки.

Аргументы
repeat- количество повторов.
pattern- строка, которую надо повторить.
...args- параметры для инициализации аллокатора.

◆ lstring() [4/11]

template<typename K, size_t N, bool forShared = false, Allocatorable Allocator = allocator_string>
template<typename... Args>
requires std::is_constructible_v<allocator_t, Args...>
simstr::lstring< K, N, forShared, Allocator >::lstring ( size_t count,
K pad,
Args &&... args )
inlineconstexpr

Конструктор повторения символа.

Аргументы
count- количество повторов.
pad- символ, который надо повторить.
...args- параметры для инициализации аллокатора.

◆ lstring() [5/11]

template<typename K, size_t N, bool forShared = false, Allocatorable Allocator = allocator_string>
template<typename... Args>
requires std::is_constructible_v<allocator_t, Args...>
simstr::lstring< K, N, forShared, Allocator >::lstring ( const StrExprForType< K > auto & expr,
Args &&... args )
inlineconstexpr

Конструктор из строкового выражения.

Аргументы
expr- строковое выражение.
...args- параметры для инициализации аллокатора.

Конструктор запрашивает у строкового выражения length(), выделяет память нужного размера, и вызывает метод place() для размещения результата в буфере.

◆ lstring() [6/11]

template<typename K, size_t N, bool forShared = false, Allocatorable Allocator = allocator_string>
template<StrType< K > From, typename... Args>
requires std::is_constructible_v<allocator_t, Args...>
simstr::lstring< K, N, forShared, Allocator >::lstring ( const From & f,
s_str pattern,
s_str repl,
size_t offset = 0,
size_t maxCount = 0,
Args &&... args )
inlineconstexpr

Конструктор из строкового источника с заменой.

Аргументы
f- строковый объект, из которого берётся исходная строка.
pattern- подстрока, которую надо заменить.
repl- строка, на которую надо заменить.
offset- начальная позиция для поиска подстрок.
maxCount- максимальное количество замен, 0 - без ограничений.
...args- параметры для инициализации аллокатора.

◆ lstring() [7/11]

template<typename K, size_t N, bool forShared = false, Allocatorable Allocator = allocator_string>
simstr::lstring< K, N, forShared, Allocator >::lstring ( const my_type & other)
inlineconstexpr

Копирование из другой строки такого же типа.

Аргументы
other- другая строка.

◆ lstring() [8/11]

template<typename K, size_t N, bool forShared = false, Allocatorable Allocator = allocator_string>
template<typename... Args>
requires (sizeof...(Args) > 0 && std::is_convertible_v<allocator_t, Args...>)
simstr::lstring< K, N, forShared, Allocator >::lstring ( const my_type & other,
Args &&... args )
inlineconstexpr

Копирование из другой строки такого же типа, но с другим аллокатором.

Аргументы
other- другая строка.
...args- параметры для инициализации аллокатора.

◆ lstring() [9/11]

template<typename K, size_t N, bool forShared = false, Allocatorable Allocator = allocator_string>
template<typename T, size_t I = const_lit_for<K, T>::Count, typename... Args>
requires std::is_constructible_v<allocator_t, Args...>
simstr::lstring< K, N, forShared, Allocator >::lstring ( T && value,
Args &&... args )
inlineconstexpr

Конструктор из строкового литерала.

Аргументы
value- строковый литерал.
...args- параметры для инициализации аллокатора.

◆ lstring() [10/11]

template<typename K, size_t N, bool forShared = false, Allocatorable Allocator = allocator_string>
simstr::lstring< K, N, forShared, Allocator >::lstring ( my_type && other)
inlineconstexprnoexcept

Конструктор перемещения из строки такого же типа.

Аргументы
other- другая строка.

◆ lstring() [11/11]

template<typename K, size_t N, bool forShared = false, Allocatorable Allocator = allocator_string>
template<typename Op, typename... Args>
requires (std::is_constructible_v<Allocator, Args...> && (std::is_invocable_v<Op, my_type&> || std::is_invocable_v<Op, K*, size_t>))
simstr::lstring< K, N, forShared, Allocator >::lstring ( const Op & op,
Args &&... args )
inline

Конструктор заполнения с помощью функтора (см. str_mutable::fill).

Аргументы
op- функтов заполнения.
...args- параметры для инициализации аллокатора.

Методы

◆ append() [1/2]

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::append ( const A & expr)
inlineinherited

Добавить строковое выражение в конец строки.

Аргументы
expr- строковое выражение.
Возвращает
Impl& - ссылку на себя же.

◆ append() [2/2]

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::append ( str_piece other)
inlineinherited

Добавить другую строку в конец строки.

Аргументы
other- другая строка.
Возвращает
Impl& - ссылку на себя же.

◆ append_formatted()

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::append_formatted ( const FmtString< fmt_type, T... > & format,
T &&... args )
inlineinherited

Добавляет отформатированный с помощью std::format вывод в конец строки.

Аргументы
format- форматная строка, константная.
...args- аргументы для std::format.
Возвращает
Impl& - ссылку на себя же.

При необходимости автоматически увеличивает размер буфера строки.

◆ append_in() [1/2]

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::append_in ( size_t pos,
const A & expr )
inlineinherited

Добавить строковое выражение, начиная с заданной позиции.

Аргументы
pos- позиция, с которой добавлять. Сначала строка укорачивается до заданного размера, а потом добавляется строковое выражение.
expr- строковое выражение.
Возвращает
Impl& - ссылку на себя же.

Если строка длиннееpos, то она укорачивается до этого размера, а потом добавляется expr.

◆ append_in() [2/2]

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::append_in ( size_t pos,
str_piece other )
inlineinherited

Добавить другую строку, начиная с заданной позиции.

Аргументы
pos- позиция, с которой добавлять. Сначала строка укорачивается до заданного размера, а потом добавляется другая строка.
other- другая строка.
Возвращает
Impl& - ссылку на себя же.

Если строка длиинееpos, то она укорачивается до этого размера, а потом добавляется other.

◆ append_printf()

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::append_printf ( const K * format,
T &&... args )
inlineinherited

Добавляет отформатированный с помощью sprintf вывод в конец строки.

Аргументы
format- форматная строка.
...args- аргументы для sprintf.
Возвращает
Impl& - ссылку на себя же.

При необходимости автоматически увеличивает размер буфера строки.

◆ append_vformatted()

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::append_vformatted ( str_piece format,
T &&... args )
inlineinherited

Добавляет отформатированный с помощью std::vformat вывод в конец строки.

Аргументы
format- форматная строка.
...- аргументы для std::vformat.
Возвращает
Impl& - ссылку на себя же.

При необходимости автоматически увеличивает размер буфера строки.

◆ append_vformatted_n()

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::append_vformatted_n ( size_t max_write,
str_piece format,
T &&... args )
inlineinherited

Добавляет отформатированный с помощью std::vformat вывод в конец строки, записывая не более указанного количества символов.

Аргументы
max_write- максимальное количество записываемых символов.
format- форматная строка.
...args- аргументы для std::vformat.
Возвращает
Impl& - ссылку на себя же

При необходимости автоматически увеличивает размер буфера строки.

◆ as_int()

T simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::as_int ( ) const
inlineconstexprnoexceptinherited

Преобразовать строку в число заданного типа.

Параметры шаблона
T- желаемый тип числа.
CheckOverflow- проверять на переполнение.
Base- основание счисления числа, от -1 до 36, кроме 1.
  • Если 0: то пытается определить основание по префиксу 0[xX] как 16, 0 как 8, иначе 10.
  • Если -1: то пытается определить основание по префиксам:
    • 0 или 0[oO]: 8
    • 0[bB]: 2
    • 0[xX]: 16
    • в остальных случаях 10.
SkipWs- пропускать пробельные символы в начале строки.
AllowSign- допустим ли знак '+' перед числом.
Возвращает
T - число, результат преобразования, насколько оно получилось, или 0 при переполнении.

◆ as_number() [1/2]

void simstr::str_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::as_number ( double & t) const
inlineinherited

Преобразовать строку в double.

Аргументы
t- переменная, в которую записывается результат.

◆ as_number() [2/2]

void simstr::str_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::as_number ( T & t) const
inlineconstexprinherited

Преобразовать строку в целое число.

Так как as_number(double& t) перекрывает видимость as_number из базового класса, придётся добавить его ещё раз.

Параметры шаблона
T- тип числа, выводится из аргумента.
Аргументы
t- переменная, в которую записывается результат.

◆ at()

K simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::at ( ptrdiff_t idx) const
inlineconstexprinherited

Получить символ на заданной позиции .

Аргументы
idx- индекс символа. Для отрицательных значений отсчитывается от конца строки.
Возвращает
K - символ.

Не производит проверку на выход за границы строки.

◆ c_str()

template<typename K, typename Impl>
const K * simstr::null_terminated< K, Impl >::c_str ( ) const
inlineconstexprinherited

Получить указатель на константный буфер символов строки

Возвращает
const K* - указатель на константный буфер символов строки

◆ change() [1/2]

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::change ( size_t from,
size_t len,
const A & expr )
inlineinherited

Заменить кусок строки на строковое выражение.

Аргументы
from- начальная позиция для замены.
len- длина заменяемой части.
expr- строковое выражение.
Возвращает
Impl& - ссылку на себя же.

◆ change() [2/2]

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::change ( size_t from,
size_t len,
str_piece other )
inlineinherited

Заменить кусок строки на другую строку.

Аргументы
from- начальная позиция для замены.
len- длина заменяемой части.
other- строка, на которую эта часть меняется .
Возвращает
Impl& - ссылку на себя же

◆ compare()

int simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::compare ( str_piece o) const
inlineconstexprinherited

Сравнение строк посимвольно.

Аргументы
o- другая строка.
Возвращает
<0 эта строка меньше, ==0 - строки равны, >0 - эта строка больше.

◆ compare_ia()

int simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::compare_ia ( str_piece text) const
inlineconstexprnoexceptinherited

Сравнение строк посимвольно без учёта регистра ASCII символов.

Аргументы
text- другая строка.
Возвращает
<0 эта строка меньше, ==0 - строки равны, >0 - эта строка больше.

◆ compare_iu()

int simstr::str_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::compare_iu ( str_piece text) const
inlinenoexceptinherited

Сравнение строк посимвольно без учёта регистра Unicode символов первой плоскости (<0xFFFF).

Аргументы
text- другая строка.
Возвращает
<0 эта строка меньше, ==0 - строки равны, >0 - эта строка больше.

◆ contains()

bool simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::contains ( str_piece pattern,
size_t offset = 0 ) const
inlineconstexprnoexceptinherited

Содержит ли строка указанную подстроку.

Аргументы
pattern- искомая строка.
offset- с какой позиции начинать поиск.
Возвращает
bool.

◆ copy_to()

void simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::copy_to ( K * buffer,
size_t bufSize )
inlineinherited

Копировать строку в указанный буфер.

Метод добавляет \0 после скопированных символов. Не выходит за границы буфера.

Аргументы
buffer- указатель на буфер
bufSize- размер буфера в символах.

◆ ends_with()

bool simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::ends_with ( str_piece suffix) const
inlineconstexprnoexceptinherited

Заканчивается ли строка указанной подстрокой.

Аргументы
suffix- подстрока.

◆ ends_with_ia()

bool simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::ends_with_ia ( str_piece suffix) const
inlineconstexprnoexceptinherited

Заканчивается ли строка указанной подстрокой без учёта регистра ASCII символов.

Аргументы
suffix- подстрока.

◆ ends_with_iu()

bool simstr::str_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::ends_with_iu ( str_piece suffix) const
inlineconstexprnoexceptinherited

Заканчивается ли строка указанной подстрокой без учёта регистра Unicode символов первой плоскости (<0xFFFF).

Аргументы
suffix- подстрока.

◆ equal()

bool simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::equal ( str_piece other) const
inlineconstexprnoexceptinherited

Сравнение строк на равенство.

Аргументы
other- другая строка.
Возвращает
равны ли строки.

◆ equal_ia()

bool simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::equal_ia ( str_piece text) const
inlineconstexprnoexceptinherited

Равна ли строка другой строке посимвольно без учёта регистра ASCII символов.

Аргументы
text- другая строка.
Возвращает
равны ли строки.

◆ equal_iu()

bool simstr::str_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::equal_iu ( str_piece text) const
inlinenoexceptinherited

Равна ли строка другой строке посимвольно без учёта регистра Unicode символов первой плоскости (<0xFFFF).

Аргументы
text- другая строка.
Возвращает
равны ли строки.

◆ fill()

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::fill ( size_t from,
const Op & fillFunction )
inlineinherited

Заполнение буфера строки с помощью функтора.

Аргументы
from- начальная позиция для заполнения.
fillFunction- size_t(K*, size_t) функтор, получающий адрес буфера строки и его ёмкость, возвращающий необходимый размер строки.
Возвращает
Impl& - ссылку на себя же.

Функция вызывает функтор, передавая ему адрес буфера строки и его ёмкость. Функтор может изменять буфер в пределах выделенной ёмкости, и должен вернуть размер итоговой строки. Пока возвращаемый размер больше ёмкости (т.е. строка не может поместиться в буфер), выделятся память как минимум возвращенного размера, и функтор вызывается снова. До тех пор, пока возвращённый размер не будет помещаться в буфер строки. Этот размер и становится длиной строки.

◆ find() [1/2]

size_t simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::find ( K s,
size_t offset = 0 ) const
inlineconstexprnoexceptinherited

Найти символ в этой строке.

Аргументы
s- искомый символ.
offset- с какой позиции начинать поиск.
Возвращает
size_t - позицию найденного символа, или -1, если не найден.

◆ find() [2/2]

size_t simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::find ( str_piece pattern,
size_t offset = 0 ) const
inlineconstexprnoexceptinherited

Найти начало первого вхождения подстроки в этой строке.

Аргументы
pattern- искомая строка.
offset- с какой позиции начинать поиск.
Возвращает
size_t - позицию начала вхождения подстроки, или -1, если не найдена.

◆ find_all()

To simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::find_all ( str_piece pattern,
size_t offset = 0,
size_t maxCount = 0 ) const
inlineconstexprinherited

Найти все вхождения подстроки в этой строке.

Аргументы
pattern- искомая подстрока.
offset- позиция начала поиска.
maxCount- максимальное количество обрабатываемых вхождений, 0 - без ограничений.
Возвращает
std::vector<size_t> - вектор с позициями начал найденных вхождений.

◆ find_end()

size_t simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::find_end ( str_piece pattern,
size_t offset = 0 ) const
inlineconstexprnoexceptinherited

Найти конец вхождения подстроки в этой строке.

Аргументы
pattern- искомая строка.
offset- с какой позиции начинать поиск.
Возвращает
size_t - позицию сразу за вхождением подстроки, или -1, если не найдена.

◆ find_end_of_last()

size_t simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::find_end_of_last ( str_piece pattern,
size_t offset = -1 ) const
inlineconstexprnoexceptinherited

Найти конец последнего вхождения подстроки в этой строке.

Аргументы
pattern- искомая строка.
offset- c какой позиции вести поиск в обратную сторону, -1 - с самого конца.
Возвращает
size_t - позицию сразу за последним вхождением подстроки, или -1, если не найдена.

◆ find_end_of_last_or_all()

size_t simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::find_end_of_last_or_all ( str_piece pattern,
size_t offset = -1 ) const
inlineconstexprnoexceptinherited

Найти конец последнего вхождения подстроки в этой строке или конец строки.

Аргументы
pattern- искомая строка.
offset- c какой позиции вести поиск в обратную сторону, -1 - с самого конца.
Возвращает
size_t - позицию сразу за последним вхождением подстроки, или длину строки, если не найдена.

◆ find_end_or_all()

size_t simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::find_end_or_all ( str_piece pattern,
size_t offset = 0 ) const
inlineconstexprnoexceptinherited

Найти конец первого вхождения подстроки в этой строке или конец строки.

Аргументы
pattern- искомая строка.
offset- с какой позиции начинать поиск.
Возвращает
size_t - позицию сразу за вхождением подстроки, или длину строки, если не найдена.

◆ find_first_not_of()

size_t simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::find_first_not_of ( str_piece pattern,
size_t offset = 0 ) const
inlineconstexprnoexceptinherited

Найти первое вхождение символа не из заданного набора символов.

Аргументы
pattern- строка, задающая набор символов.
offset- позиция начала поиска.
Возвращает
size_t - позицию найденного вхождения, или -1, если не найден.

◆ find_first_of()

size_t simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::find_first_of ( str_piece pattern,
size_t offset = 0 ) const
inlineconstexprnoexceptinherited

Найти первое вхождение символа из заданного набора символов.

Аргументы
pattern- строка, задающая набор искомых символов.
offset- позиция начала поиска.
Возвращает
size_t - позицию найденного вхождения, или -1, если не найден.

◆ find_first_of_idx()

std::pair< size_t, size_t > simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::find_first_of_idx ( str_piece pattern,
size_t offset = 0 ) const
inlineconstexprnoexceptinherited

Найти первое вхождение символа из заданного набора символов.

Аргументы
pattern- строка, задающая набор искомых символов.
offset- позиция начала поиска.
Возвращает
std::pair<size_t, size_t> - пару из позиции найденного вхождения и номера найденного символа в наборе, или -1, если не найден.

◆ find_last() [1/2]

size_t simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::find_last ( K s,
size_t offset = -1 ) const
inlineconstexprnoexceptinherited

Найти последнее вхождения символа в этой строке.

Аргументы
s- искомый символ.
offset- c какой позиции вести поиск в обратную сторону, -1 - с самого конца.
Возвращает
size_t - позицию найденного символа, или -1, если не найден.

◆ find_last() [2/2]

size_t simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::find_last ( str_piece pattern,
size_t offset = -1 ) const
inlineconstexprnoexceptinherited

Найти начало последнего вхождения подстроки в этой строке.

Аргументы
pattern- искомая строка.
offset- c какой позиции вести поиск в обратную сторону, -1 - с самого конца.
Возвращает
size_t - позицию начала вхождения подстроки, или -1, если не найдена.

◆ find_last_not_of()

size_t simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::find_last_not_of ( str_piece pattern,
size_t offset = str::npos ) const
inlineconstexprnoexceptinherited

Найти последнее вхождение символа не из заданного набора символов.

Аргументы
pattern- строка, задающая набор символов.
offset- позиция начала поиска.
Возвращает
size_t - позицию найденного вхождения, или -1, если не найден.

◆ find_last_of()

size_t simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::find_last_of ( str_piece pattern,
size_t offset = str::npos ) const
inlineconstexprnoexceptinherited

Найти последнее вхождение символа из заданного набора символов.

Аргументы
pattern- строка, задающая набор искомых символов.
offset- позиция начала поиска.
Возвращает
size_t - позицию найденного вхождения, или -1, если не найден.

◆ find_last_of_idx()

std::pair< size_t, size_t > simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::find_last_of_idx ( str_piece pattern,
size_t offset = str::npos ) const
inlineconstexprnoexceptinherited

Найти последнее вхождение символа из заданного набора символов.

Аргументы
pattern- строка, задающая набор искомых символов.
offset- позиция начала поиска.
Возвращает
std::pair<size_t, size_t> - пару из позиции найденного вхождения и номера найденного символа в наборе, или -1, если не найден.

◆ find_last_or_all()

size_t simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::find_last_or_all ( str_piece pattern,
size_t offset = -1 ) const
inlineconstexprnoexceptinherited

Найти начало последнего вхождения подстроки в этой строке или конец строки.

Аргументы
pattern- искомая строка.
offset- c какой позиции вести поиск в обратную сторону, -1 - с самого конца.
Возвращает
size_t - позицию начала вхождения подстроки, или длину строки, если не найдена.

◆ find_or_all() [1/2]

size_t simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::find_or_all ( K s,
size_t offset = 0 ) const
inlineconstexprnoexceptinherited

Найти символ в этой строке или конец строки.

Аргументы
s- искомый символ.
offset- с какой позиции начинать поиск.
Возвращает
size_t - позицию найденного символа, или длину строки, если не найден.

◆ find_or_all() [2/2]

size_t simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::find_or_all ( str_piece pattern,
size_t offset = 0 ) const
inlineconstexprnoexceptinherited

Найти начало первого вхождения подстроки в этой строке или конец строки.

Аргументы
pattern- искомая строка.
offset- с какой позиции начинать поиск.
Возвращает
size_t - позицию начала вхождения подстроки, или длину строки, если не найдена.

◆ find_or_throw()

size_t simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::find_or_throw ( str_piece pattern,
size_t offset = 0,
Args &&... args ) const
inlineconstexprnoexceptinherited

Найти начало первого вхождения подстроки в этой строке или выкинуть исключение.

Параметры шаблона
Exc- тип исключения.
Args...- типы параметров для конструирования исключения, выводятся из аргументов.
Аргументы
pattern- искомая строка.
offset- с какой позиции начинать поиск.
args- аргументы для конструктора исключения.
Возвращает
size_t - позицию начала вхождения подстроки, или выбрасывает исключение Exc, если не найдена.

◆ for_all_finded()

void simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::for_all_finded ( const Op & op,
str_piece pattern,
size_t offset = 0,
size_t maxCount = 0 ) const
inlineconstexprinherited

Вызвать функтор для всех найденных вхождений подстроки в этой строке.

Аргументы
op- функтор, принимающий строку.
pattern- искомая подстрока.
offset- позиция начала поиска.
maxCount- максимальное количество обрабатываемых вхождений, 0 - без ограничений.

◆ format()

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::format ( const FmtString< fmt_type, T... > & pattern,
T &&... args )
inlineinherited

Форматирует строку с помощью std::format.

Аргументы
pattern- форматная строка, константная.
...args- аргументы для std::format.
Возвращает
Impl& - ссылку на себя же.

При необходимости автоматически увеличивает размер буфера строки.

◆ format_from()

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::format_from ( size_t from,
const FmtString< fmt_type, T... > & format,
T &&... args )
inlineinherited

Добавляет отформатированный с помощью std::format вывод, начиная с указанной позиции.

Аргументы
from- начальная позиция добавления.
format- форматная строка, константная.
...args- аргументы для std::format.
Возвращает
Impl& - ссылку на себя же.

При необходимости автоматически увеличивает размер буфера строки.

◆ from_to()

str_piece simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::from_to ( size_t from,
size_t to ) const
inlineconstexprnoexceptinherited

Получить подстроку str_src с позиции от from до позиции to (не включая её).

Для производительности метод никак не проверяет выходы за границы строки, используйте в сценариях, когда точно знаете, что это позиции внутри строки и to >= from.

Аргументы
from- начальная позиция.
to- конечная позиция (не входит в результат).
Возвращает
Подстроку, str_src.

◆ init_from_str_other()

void simstr::str_storable< K, lstring< K, N, false, allocator_string >, allocator_string >::init_from_str_other ( s_str other)
inlineconstexprprotectedinherited

Инициализация из другого строкового объекта.

Аргументы
other- другой строковый объект, simple_str.

◆ init_replaced()

void simstr::str_storable< K, lstring< K, N, false, allocator_string >, allocator_string >::init_replaced ( const From & f,
s_str pattern,
s_str repl,
size_t offset = 0,
size_t maxCount = 0 )
inlineprotectedinherited

Инициализация из строкового источника с заменой.

Аргументы
f- строковый объект, из которого берётся исходная строка.
pattern- подстрока, которую надо заменить.
repl- строка, на которую надо заменить.
offset- начальная позиция для поиска подстрок.
maxCount- максимальное количество замен, 0 - без ограничений.

◆ init_str_expr()

void simstr::str_storable< K, lstring< K, N, false, allocator_string >, allocator_string >::init_str_expr ( const A & expr)
inlineconstexprprotectedinherited

Инициализация из строкового выражения.

Аргументы
expr- строковое выражение.

Запрашивает у строкового выражения length(), выделяет память нужного размера, и вызывает метод place() для размещения результата в буфере.

◆ init_str_repeat()

void simstr::str_storable< K, lstring< K, N, false, allocator_string >, allocator_string >::init_str_repeat ( size_t repeat,
s_str pattern )
inlineconstexprprotectedinherited

Инициализация повторением строки.

Аргументы
repeat- количество повторов.
pattern- строка, которую надо повторить.

◆ init_symb_repeat()

void simstr::str_storable< K, lstring< K, N, false, allocator_string >, allocator_string >::init_symb_repeat ( size_t count,
K pad )
inlineconstexprprotectedinherited

Инициализация повторением символа.

Аргументы
count- количество повторов.
pad- символ, который надо повторить.

◆ insert() [1/2]

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::insert ( size_t to,
const A & expr )
inlineinherited

Вставить строковое выражение в указанную позицию.

Аргументы
to- позиция для вставки.
expr- строковое выражение.
Возвращает
Impl& - ссылку на себя же.

◆ insert() [2/2]

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::insert ( size_t to,
str_piece other )
inlineinherited

Вставить строку в указанную позицию.

Аргументы
to- позиция для вставки.
other- вставляемая строка.
Возвращает
Impl& - ссылку на себя же.

◆ join()

static my_type simstr::str_storable< K, lstring< K, N, false, allocator_string >, allocator_string >::join ( const T & strings,
s_str delimiter,
bool tail = false,
bool skip_empty = false,
Args &&... args )
inlinestaticinherited

Конкатенация строк из контейнера в одну строку.

Аргументы
strings- контейнер со строками.
delimiter- разделитель, добавляемый между строками.
tail- добавить разделитель после последней строки.
skip_empty- пропускать пустые строки без добавления разделителя.
...args- параметры для инициализации аллокатора.

Функция служит для слияния контейнера строк в одну строку с разделителем.

std::vector<ssa> strings = get_strings();
ssa delim = get_current_delimiter();
auto line = lstringa<200>::join(strings, delimiter);
static my_type join(const T &strings, s_str delimiter, bool tail=false, bool skip_empty=false, Args &&... args)
Определения sstring.h:1199

Стоит отметить, что при заранее известном разделителе лучше пользоваться строковым выражением e_join.

std::vector<ssa> strings = get_strings();
lstringa<200> line{e_join(strings, "/")};
constexpr auto e_join(const T &s, L &&d)
Получить строковое выражение, конкатенирующее строки в контейнере в одну строку с заданным разделител...
Определения strexpr.h:2035

В этом случае компилятор может лучше оптимизировать код слияния строк.

◆ less_ia()

bool simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::less_ia ( str_piece text) const
inlineconstexprnoexceptinherited

Меньше ли строка другой строки посимвольно без учёта регистра ASCII символов.

Аргументы
text- другая строка.
Возвращает
меньше ли строка.

◆ less_iu()

bool simstr::str_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::less_iu ( str_piece text) const
inlinenoexceptinherited

Меньше ли строка другой строки посимвольно без учёта регистра Unicode символов первой плоскости (<0xFFFF).

Аргументы
text- другая строка.
Возвращает
меньше ли строка.

◆ lower()

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::lower ( )
inlineinherited

Преобразовать в нижний регистр Unicode символы первой плоскости (<0xFFFF).

Регистр меняется упрощенными таблицами, где один code_point всегда меняется в один code_point (но для UTF-8 возможно, что длина в code unit'ах изменится).

Возвращает
Impl& - ссылку на себя же

◆ lower_only_ascii()

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::lower_only_ascii ( )
inlineinherited

Преобразовать в нижний регистр ASCII символы.

Возвращает
Impl& - ссылку на себя же.

◆ lowered()

R simstr::str_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::lowered ( ) const
inlineinherited

Получить копию строки в нижнем регистре Unicode символов первой плоскости (<0xFFFF).

Параметры шаблона
R- желаемый тип строки, по умолчанию тот же, чей метод вызывался.
Возвращает
R - копию строки в нижнем регистре.

◆ lowered_from()

static my_type simstr::str_storable< K, lstring< K, N, false, allocator_string >, allocator_string >::lowered_from ( const From & f,
Args &&... args )
inlinestaticinherited

Создать копию переданной строки в нижнем регистре символов Unicode первой плоскости (<0xFFFF).

Аргументы
f- строка источник.
...args- параметры для инициализации аллокатора.

Регистр меняется упрощенными таблицами, где один code_point всегда меняется в один code_point (но для UTF-8 возможно, что длина в code unit'ах изменится).

◆ lowered_only_ascii()

R simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::lowered_only_ascii ( ) const
inlineinherited

Получить копию строки в нижнем регистре ASCII символов.

Параметры шаблона
R- желаемый тип строки, по умолчанию тот же, чей метод вызывался.
Возвращает
R - копию строки в нижнем регистре.

◆ lowered_only_ascii_from()

static my_type simstr::str_storable< K, lstring< K, N, false, allocator_string >, allocator_string >::lowered_only_ascii_from ( const From & f,
Args &&... args )
inlinestaticinherited

Создать копию переданной строки в нижнем регистре символов ASCII.

Аргументы
f- строка источник.
...args- параметры для инициализации аллокатора.

◆ mid()

str_piece simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::mid ( size_t from,
size_t len = -1 ) const
inlineconstexprnoexceptinherited

Получить часть строки как "кусок строки".

Аргументы
from- количество символов от начала строки. При превышении размера строки вернёт пустую строку.
len- количество символов в получаемом "куске". При выходе за пределы строки вернёт всё до конца строки.
Возвращает
Подстроку, str_src.

◆ operator const K *()

simstr::str_storable< K, lstring< K, N, false, allocator_string >, allocator_string >::operator const K * ( ) const
inlineconstexprnoexceptinherited

Оператор преобразования в нуль-терминированную C-строку.

Возвращает
const K* - указатель на начало строки.

◆ operator K*()

simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::operator K* ( )
inlineexplicitnoexceptinherited

Получить указатель на буфер строки.

Возвращает
K* - указатель на буфер строки.

◆ operator s_str_nt()

simstr::str_storable< K, lstring< K, N, false, allocator_string >, allocator_string >::operator s_str_nt ( ) const
inlineconstexprinherited

Преобразовать в simple_str_nt.

Возвращает
simple_str_nt.

◆ operator std::basic_string< D, Traits, Allocator >()

simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::operator std::basic_string< D, Traits, Allocator > ( ) const
inlineconstexprinherited

Конвертировать в std::basic_string.

Возвращает
std::basic_string<K>.

◆ operator std::basic_string_view< D, Traits >()

simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::operator std::basic_string_view< D, Traits > ( ) const
inlineconstexprinherited

Конвертировать в std::basic_string_view.

Возвращает
std::basic_string_view<K>.

◆ operator str_piece()

simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::operator str_piece ( ) const
inlineconstexprnoexceptinherited

Преобразовать себя в "кусок строки", включающий всю строку.

Возвращает
str_piece.

◆ operator()()

str_piece simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::operator() ( ptrdiff_t from,
ptrdiff_t len = 0 ) const
inlineconstexprnoexceptinherited

Получить часть строки как "str_src".

Аргументы
from- количество символов от начала строки.
len- количество символов в получаемом "куске".
Возвращает
Подстроку, str_src.

Если from меньше нуля, то отсчитывается -from символов от конца строки в сторону начала. Если len меньше или равно нулю, то отсчитать -len символов от конца строки

"0123456789"_ss(5, 2) == "56";
"0123456789"_ss(5) == "56789";
"0123456789"_ss(5, -1) == "5678";
"0123456789"_ss(-3) == "789";
"0123456789"_ss(-3, 2) == "78";
"0123456789"_ss(-4, -1) == "678";

◆ operator+=() [1/2]

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::operator+= ( const A & expr)
inlineinherited

Добавить строковое выражение в конец строки.

Аргументы
expr- строковое выражение.
Возвращает
Impl& - ссылку на себя же.

◆ operator+=() [2/2]

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::operator+= ( str_piece other)
inlineinherited

Добавить другую строку в конец строки.

Аргументы
other- другая строка.
Возвращает
Impl& - ссылку на себя же.

◆ operator<<() [1/2]

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::operator<< ( const Op & fillFunction)
inlineinherited

Заполняет строку методом fill с нулевой позиции.

Аргументы
fillFunction- функтор заполнения строки, size_t(K*, size_t).
Возвращает
Impl& - ссылку на себя же.

◆ operator<<() [2/2]

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::operator<< ( const Op & fillFunction)
inlineinherited

Вызывает переданный функтор, передав ссылку на себя.

Аргументы
fillFunction- фуктор void(my_type&).
Возвращает
Impl& - ссылку на себя же.

◆ operator<<=()

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::operator<<= ( const Op & fillFunction)
inlineinherited

Заполняет строку методом fill после конца строки.

Аргументы
fillFunction- функтор заполнения строки, size_t(K*, size_t).
Возвращает
Impl& - ссылку на себя же.

◆ operator<=>() [1/2]

auto simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::operator<=> ( const base & other) const
inlineconstexprnoexceptinherited

Оператор сравнения строк.

Аргументы
other- другая строка.

◆ operator<=>() [2/2]

auto simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::operator<=> ( T && other) const
inlineconstexprnoexceptinherited

Оператор сравнения строки и строкового литерала.

Аргументы
other- строковый литерал.

◆ operator=() [1/5]

template<typename K, size_t N, bool forShared = false, Allocatorable Allocator = allocator_string>
my_type & simstr::lstring< K, N, forShared, Allocator >::operator= ( const my_type & other)
inline

Оператор присваивания копией из строки такого же типа.

Аргументы
other- другая строка.
Возвращает
my_type& - ссылку на себя же.

◆ operator=() [2/5]

template<typename K, size_t N, bool forShared = false, Allocatorable Allocator = allocator_string>
my_type & simstr::lstring< K, N, forShared, Allocator >::operator= ( const StrExprForType< K > auto & expr)
inline

Оператор присваивания строкового выражения.

Аргументы
expr- строковое выражение, материализуемое в буфер строки.
Возвращает
my_type& - ссылку на себя же.

Если в строковом выражении что-либо ссылается на части этой же строки, то результат не определён.

◆ operator=() [3/5]

template<typename K, size_t N, bool forShared = false, Allocatorable Allocator = allocator_string>
my_type & simstr::lstring< K, N, forShared, Allocator >::operator= ( my_type && other)
inlinenoexcept

Оператор присваивания перемещением из строки такого же типа.

Аргументы
other- другая строка.
Возвращает
my_type& - ссылку на себя же.

◆ operator=() [4/5]

template<typename K, size_t N, bool forShared = false, Allocatorable Allocator = allocator_string>
my_type & simstr::lstring< K, N, forShared, Allocator >::operator= ( simple_str< K > other)
inline

Оператор присваивания из simple_str.

Аргументы
other- другая строка.
Возвращает
my_type& - ссылку на себя же.

◆ operator=() [5/5]

template<typename K, size_t N, bool forShared = false, Allocatorable Allocator = allocator_string>
template<typename T, size_t S = const_lit_for<K, T>::Count>
my_type & simstr::lstring< K, N, forShared, Allocator >::operator= ( T && other)
inline

Оператор присваивания строкового литерала.

Аргументы
other- строковый литерал, копируется в буфер строки.
Возвращает
my_type& - ссылку на себя же.

◆ operator==() [1/2]

bool simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::operator== ( const base & other) const
inlineconstexprnoexceptinherited

Оператор сравнение строк на равенство.

Аргументы
other- другая строка.
Возвращает
равны ли строки.

◆ operator==() [2/2]

bool simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::operator== ( T && other) const
inlineconstexprnoexceptinherited

Оператор сравнения строки и строкового литерала на равенство.

Аргументы
other- строковый литерал.

◆ place()

K * simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::place ( K * ptr) const
inlineconstexprnoexceptinherited

Копировать строку в указанный буфер.

Метод предполагает, что размер выделенного буфера достаточен для всей строки, т.е. предварительно была запрошена length(). Не добавляет \0.

Аргументы
ptr- указатель на буфер.
Возвращает
указатель на символ после конца размещённой в буфере строки.

◆ prefix_in()

bool simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::prefix_in ( str_piece text) const
inlineconstexprnoexceptinherited

Является ли эта строка началом другой строки.

Аргументы
text- другая строка.

◆ prepend() [1/2]

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::prepend ( const A & expr)
inlineinherited

Добавить строковое выражение в начало строки.

Аргументы
expr- строковое выражение.
Возвращает
Impl& - ссылку на себя же.

◆ prepend() [2/2]

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::prepend ( str_piece other)
inlineinherited

Добавить другую строку в начало строки.

Аргументы
other- другая строка.
Возвращает
Impl& - ссылку на себя же.

◆ printf()

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::printf ( const K * format,
T &&... args )
inlineinherited

Форматирует строку помощью sprintf.

Аргументы
format- форматная строка.
...args- аргументы для sprintf.
Возвращает
Impl& - ссылку на себя же

При необходимости автоматически увеличивает размер буфера строки.

◆ printf_from()

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::printf_from ( size_t from,
const K * format,
T &&... args )
inlineinherited

Добавляет отформатированный с помощью sprintf вывод, начиная с указанной позиции.

Аргументы
from- начальная позиция добавления.
format- форматная строка.
...args- аргументы для sprintf.
Возвращает
Impl& - ссылку на себя же.

При необходимости автоматически увеличивает размер буфера строки.

◆ remove()

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::remove ( size_t from,
size_t len )
inlineinherited

Удалить часть строки.

Аргументы
from- позиция, с которой удалить.
len- длина удаляемой части.
Возвращает
Impl& - ссылку на себя же.

◆ replace()

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::replace ( str_piece pattern,
str_piece repl,
size_t offset = 0,
size_t maxCount = 0 )
inlineinherited

Заменить вхождения подстроки на другую строку.

Аргументы
pattern- искомая подстрока.
repl- строка замены.
offset- начальная позиция для поиска.
maxCount- максимальное количество замен, 0 - без ограничений.
Возвращает
Impl& - ссылку на себя же.

◆ replace_from()

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::replace_from ( const From & f,
str_piece pattern,
str_piece repl,
size_t offset = 0,
size_t maxCount = 0 )
inlineinherited

Скопировать строку-источник, заменив вхождения подстрок на другую строку.

Аргументы
f- строка-источник.
pattern- искомая подстрока.
repl- строка замены.
offset- начальная позиция для поиска.
maxCount- максимальное количество замен, 0 - без ограничений.
Возвращает
Impl& - ссылку на себя же.

◆ replaced()

R simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::replaced ( str_piece pattern,
str_piece repl,
size_t offset = 0,
size_t maxCount = 0 ) const
inlineinherited

Получить копию строки с заменёнными вхождениями подстрок.

Параметры шаблона
R- желаемый тип строки, по умолчанию тот же, чей метод вызывался.
Аргументы
pattern- искомая подстрока.
repl- строка, на которую заменять.
offset- начальная позиция поиска.
maxCount- максимальное количество замен, 0 - без ограничений.
Возвращает
R строку заданного типа, по умолчанию того же, чей метод вызывался.

◆ replaced_from()

static my_type simstr::str_storable< K, lstring< K, N, false, allocator_string >, allocator_string >::replaced_from ( const From & f,
s_str pattern,
s_str repl,
size_t offset = 0,
size_t maxCount = 0,
Args &&... args )
inlinestaticinherited

Создать копию переданной строки с заменой подстрок.

Аргументы
f- строка источник.
pattern- подстрока, которую надо заменить.
repl- строка, на которую надо заменить.
offset- начальная позиция для поиска подстрок.
maxCount- максимальное количество замен, 0 - без ограничений.
...args- параметры для инициализации аллокатора.

◆ reserve()

template<typename K, size_t N, bool forShared = false, Allocatorable Allocator = allocator_string>
K * simstr::lstring< K, N, forShared, Allocator >::reserve ( size_t newSize)
inlineconstexpr

Выделить буфер, достаточный для размещения newSize символов плюс завершающий ноль.

Аргументы
newSize- новый размер строки.
Возвращает
K* - указатель на буфер.

Содержимое строки сохраняется. При увеличении буфера размер выделяется не больше запрошенного. Размер строки устанавливается в newSize.

◆ reserve_no_preserve()

template<typename K, size_t N, bool forShared = false, Allocatorable Allocator = allocator_string>
K * simstr::lstring< K, N, forShared, Allocator >::reserve_no_preserve ( size_t newSize)
inlineconstexpr

Выделить буфер, достаточный для размещения newSize символов плюс завершающий ноль.

Аргументы
newSize- новый размер строки.
Возвращает
K* - указатель на буфер.

Содержимое буфера не определено, и не гарантируется сохранение старого содержимого. Размер строки устанавливается в newSize.

◆ set_size()

template<typename K, size_t N, bool forShared = false, Allocatorable Allocator = allocator_string>
K * simstr::lstring< K, N, forShared, Allocator >::set_size ( size_t newSize)
inlineconstexpr

Устанавливает размер текущей строки, при необходимости выделяя место.

Аргументы
newSize- новый размер строки.
Возвращает
K* - указатель на буфер.

Содержимое строки сохраняется. При увеличении буфера размер выделяется не менее чем 2 старого размера буфера. Размер строки устанавливается в newSize.

◆ size()

size_t simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::size ( ) const
inlineconstexprinherited

Размер строки в символах.

Возвращает
size_t

◆ split()

T simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::split ( str_piece delimiter,
size_t offset = 0 ) const
inlineconstexprinherited

Разделить строку на подстроки по заданному разделителю.

Параметры шаблона
T- тип контейнера для результата.
Аргументы
delimiter- разделитель.
offset- позиция начала поиска разделителя.
Возвращает
T - контейнер с результатом.

◆ splitf()

T simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::splitf ( str_piece delimiter,
const Op & beforeFunc,
size_t offset = 0 ) const
inlineconstexprinherited

Разделить строку на части по заданному разделителю, с возможным применением функтора к каждой подстроке.

Параметры шаблона
T- тип контейнера для складывания подстрок.
Аргументы
delimiter- подстрока разделитель.
beforeFunc- функтор для применения к найденным подстрокам, перед помещением их в результат.
offset- позиция начала поиска разделителя.
Возвращает
T - результат.

Для каждой найденной подстроки, если функтор может принять её, вызывается функтор, и подстрока присваивается результату функтора. Далее подстрока пытается добавиться в результат, вызывая один из его методов - emplace_back, push_back, operator[]. Если ни одного этого метода нет, ничего не делается, только вызов функтора. operator[] пытается применится, если у результата можно получить размер через std::size и мы не выходим за этот размер. При этом, если найденная подстрока получается совпадающей со всей строкой - в результат пытается поместить не подстроку, а весь объект строки, что позволяет, например, эффективно копировать sstring.

◆ splitter()

SplitterBase< K, str_piece > simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::splitter ( str_piece delimiter) const
inlineconstexprinherited

Получить объект Splitter по заданному разделителю, который позволяет последовательно получать подстроки методом next(), пока is_done() false.

Аргументы
delimiter- разделитель.
Возвращает
Splitter<K>.

◆ starts_with()

bool simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::starts_with ( str_piece prefix) const
inlineconstexprnoexceptinherited

Начинается ли строка с заданной подстроки.

Аргументы
prefix- подстрока.

◆ starts_with_ia()

bool simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::starts_with_ia ( str_piece prefix) const
inlineconstexprnoexceptinherited

Начинается ли строка с заданной подстроки без учёта регистра ASCII символов.

Аргументы
prefix- подстрока.

◆ starts_with_iu()

bool simstr::str_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::starts_with_iu ( str_piece prefix) const
inlinenoexceptinherited

Начинается ли строка с заданной подстроки без учёта регистра Unicode символов первой плоскости (<0xFFFF).

Аргументы
prefix- подстрока.

◆ str_mid()

my_type simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::str_mid ( size_t from,
size_t len = -1 ) const
inlineconstexprinherited

Получить часть строки объектом того же типа, к которому применён метод, аналогично mid.

Аргументы
from- количество символов от начала строки. При превышении размера строки вернёт пустую строку.
len- количество символов в получаемом "куске". При выходе за пределы строки вернёт всё до конца строки.
Возвращает
Строку того же типа, к которому применён метод.

◆ strcmp()

int simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::strcmp ( const K * text) const
inlineconstexprinherited

Сравнение с C-строкой посимвольно.

Аргументы
text- другая строка.
Возвращает
<0 эта строка меньше, ==0 - строки равны, >0 - эта строка больше.

◆ substr()

my_type simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::substr ( ptrdiff_t from,
ptrdiff_t len = 0 ) const
inlineconstexprinherited

Получить подстроку. Работает аналогично operator(), только результат выдает того же типа, к которому применён метод.

Аргументы
from- количество символов от начала строки. Если меньше нуля, отсчитывается от конца строки в сторону начала.
len- количество символов в получаемом "куске". Если меньше или равно нулю, то отсчитать len символов от конца строки.
Возвращает
my_type - подстроку, объект того же типа, к которому применён метод.

◆ to_double()

std::optional< double > simstr::str_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::to_double ( ) const
inlinenoexceptinherited

Преобразовать строку в double.

Возвращает
std::optional<double>.

◆ to_double_hex()

std::optional< double > simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::to_double_hex ( ) const
inlinenoexceptinherited

Преобразовать строку в 16ричной записи в double. Пока работает только для char.

Возвращает
std::optional<double>.

◆ to_int()

convert_result< T > simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::to_int ( ) const
inlineconstexprnoexceptinherited

Преобразовать строку в число заданного типа.

Параметры шаблона
T- желаемый тип числа.
CheckOverflow- проверять на переполнение.
Base- основание счисления числа, от -1 до 36, кроме 1.
  • Если 0: то пытается определить основание по префиксу 0[xX] как 16, 0 как 8, иначе 10
  • Если -1: то пытается определить основание по префиксам:
    • 0 или 0[oO]: 8
    • 0[bB]: 2
    • 0[xX]: 16
    • в остальных случаях 10.
SkipWs- пропускать пробельные символы в начале строки. Пропускаются все символы с ASCII кодами <= 32.
AllowSign- допустим ли знак '+' перед числом.
Возвращает
convert_result<T> - кортеж из полученного числа, успешности преобразования и количестве обработанных символов.

◆ to_nts()

s_str_nt simstr::str_storable< K, lstring< K, N, false, allocator_string >, allocator_string >::to_nts ( size_t from = 0) const
inlineconstexprinherited

Получить simple_str_nt, начиная с заданного символа.

Аргументы
from- позиция начального символа, по умолчанию 0.
Возвращает
simple_str_nt,

◆ to_str()

str_piece simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::to_str ( ) const
inlineconstexprnoexceptinherited

Преобразовать себя в "кусок строки", включающий всю строку.

Возвращает
str_piece.

◆ to_string()

std::basic_string< D, Traits, Allocator > simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::to_string ( ) const
inlineconstexprinherited

Конвертировать в std::basic_string.

Возвращает
std::basic_string<K>.

◆ to_sv()

std::basic_string_view< D > simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::to_sv ( ) const
inlineconstexprnoexceptinherited

Конвертировать в std::basic_string_view.

Возвращает
std::basic_string_view<K>.

◆ trim() [1/3]

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::trim ( )
inlineinherited

Удалить пробельные символы в начале и в конце строки.

Возвращает
Impl& - ссылку на себя же.

◆ trim() [2/3]

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::trim ( str_piece pattern)
inlineinherited

Удалить символы, входящие в переданную строку, в начале и в конце строки.

Аргументы
pattern- строка, содержащая символы, которые надо удалить.
Возвращает
Impl& - ссылку на себя же

◆ trim() [3/3]

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::trim ( T && pattern)
inlineinherited

Удалить символы, входящие в строковый литерал, в начале и в конце строки.

Аргументы
pattern- строковый литерал, содержащий символы, которые надо удалить.
Возвращает
Impl& - ссылку на себя же.

◆ trim_left() [1/3]

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::trim_left ( )
inlineinherited

Удалить пробельные символы в начале строки.

Возвращает
Impl& - ссылку на себя же.

◆ trim_left() [2/3]

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::trim_left ( str_piece pattern)
inlineinherited

Удалить символы, входящие в переданную строку, в начале строки.

Аргументы
pattern- строка, содержащая символы, которые надо удалить.
Возвращает
Impl& - ссылку на себя же

◆ trim_left() [3/3]

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::trim_left ( T && pattern)
inlineinherited

Удалить символы, входящие в строковый литерал, в начале строки.

Аргументы
pattern- строковый литерал, содержащий символы, которые надо удалить.
Возвращает
Impl& - ссылку на себя же.

◆ trim_left_with_spaces() [1/2]

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::trim_left_with_spaces ( str_piece pattern)
inlineinherited

Удалить символы, входящие в переданную строку, а также пробельные символы, в начале строки.

Аргументы
pattern- строка, содержащая символы, которые надо удалить.
Возвращает
Impl& - ссылку на себя же

◆ trim_left_with_spaces() [2/2]

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::trim_left_with_spaces ( T && pattern)
inlineinherited

Удалить символы, входящие в строковый литерал, а также пробельные символы, в начале строки.

Аргументы
pattern- строковый литерал, содержащий символы, которые надо удалить.
Возвращает
Impl& - ссылку на себя же

◆ trim_right() [1/3]

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::trim_right ( )
inlineinherited

Удалить пробельные символы в конце строки.

Возвращает
Impl& - ссылку на себя же.

◆ trim_right() [2/3]

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::trim_right ( str_piece pattern)
inlineinherited

Удалить символы, входящие в переданную строку, в конце строки.

Аргументы
pattern- строка, содержащая символы, которые надо удалить.
Возвращает
Impl& - ссылку на себя же

◆ trim_right() [3/3]

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::trim_right ( T && pattern)
inlineinherited

Удалить символы, входящие в строковый литерал, в конце строки.

Аргументы
pattern- строковый литерал, содержащий символы, которые надо удалить.
Возвращает
Impl& - ссылку на себя же.

◆ trim_right_with_spaces()

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::trim_right_with_spaces ( str_piece pattern)
inlineinherited

Удалить символы, входящие в переданную строку, а также пробельные символы, в конце строки.

Аргументы
pattern- строка, содержащая символы, которые надо удалить.
Возвращает
Impl& - ссылку на себя же

◆ trim_right_with_wpaces()

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::trim_right_with_wpaces ( T && pattern)
inlineinherited

Удалить символы, входящие в строковый литерал, а также пробельные символы, в конце строки.

Аргументы
pattern- строковый литерал, содержащий символы, которые надо удалить.
Возвращает
Impl& - ссылку на себя же

◆ trim_with_spaces() [1/2]

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::trim_with_spaces ( str_piece pattern)
inlineinherited

Удалить символы, входящие в переданную строку, а также пробельные символы, в начале и в конце строки.

Аргументы
pattern- строка, содержащая символы, которые надо удалить.
Возвращает
Impl& - ссылку на себя же

◆ trim_with_spaces() [2/2]

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::trim_with_spaces ( T && pattern)
inlineinherited

Удалить символы, входящие в строковый литерал, а также пробельные символы, в начале и в конце строки.

Аргументы
pattern- строковый литерал, содержащий символы, которые надо удалить.
Возвращает
Impl& - ссылку на себя же

◆ trimmed() [1/3]

R simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::trimmed ( ) const
inlineconstexprinherited

Получить строку с удалением пробельных символов слева и справа.

Параметры шаблона
R- желаемый тип строки, по умолчанию str_src.
Возвращает
R - строка, с удалёнными в начале и в конце пробельными символами.

◆ trimmed() [2/3]

R simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::trimmed ( str_piece pattern) const
inlineinherited

Получить строку с удалением символов, заданных другой строкой, слева и справа.

Параметры шаблона
R- желаемый тип строки, по умолчанию str_src.
Аргументы
pattern- строка, задающая символы, которые будут обрезаться.
Возвращает
R - строка, с удалёнными в начале и в конце символами, содержащимися в шаблоне.

◆ trimmed() [3/3]

R simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::trimmed ( T && pattern) const
inlineinherited

Получить строку с удалением символов, заданных строковым литералом, слева и справа.

Параметры шаблона
R- желаемый тип строки, по умолчанию str_src.
Аргументы
pattern- строковый литерал, задающий символы, которые будут обрезаться.
Возвращает
R - строка, с удалёнными в начале и в конце символами, содержащимися в литерале.

◆ trimmed_left() [1/3]

R simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::trimmed_left ( ) const
inlineinherited

Получить строку с удалением пробельных символов слева.

Параметры шаблона
R- желаемый тип строки, по умолчанию str_src.
Возвращает
R - строка, с удалёнными в начале пробельными символами.

◆ trimmed_left() [2/3]

R simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::trimmed_left ( str_piece pattern) const
inlineinherited

Получить строку с удалением символов, заданных другой строкой, слева.

Параметры шаблона
R- желаемый тип строки, по умолчанию str_src.
Аргументы
pattern- строка, задающая символы, которые будут обрезаться.
Возвращает
R - строка, с удалёнными в начале символами, содержащимися в шаблоне.

◆ trimmed_left() [3/3]

R simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::trimmed_left ( T && pattern) const
inlineinherited

Получить строку с удалением символов, заданных строковым литералом, слева.

Параметры шаблона
R- желаемый тип строки, по умолчанию str_src.
Аргументы
pattern- строковый литерал, задающий символы, которые будут обрезаться.
Возвращает
R - строка, с удалёнными в начале символами, содержащимися в литерале.

◆ trimmed_left_with_spaces() [1/2]

R simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::trimmed_left_with_spaces ( str_piece pattern) const
inlineinherited

Получить строку с удалением символов, заданных другой строкой, а также пробельных символов, слева.

Параметры шаблона
R- желаемый тип строки, по умолчанию str_src.
Аргументы
pattern- строка, задающая символы, которые будут обрезаться.
Возвращает
R - строка, с удалёнными в начале символами, содержащимися в шаблоне и пробельными символами.

◆ trimmed_left_with_spaces() [2/2]

R simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::trimmed_left_with_spaces ( T && pattern) const
inlineinherited

Получить строку с удалением символов, заданных строковым литералом, а также пробельных символов, слева.

Параметры шаблона
R- желаемый тип строки, по умолчанию str_src.
Аргументы
pattern- строковый литерал, задающий символы, которые будут обрезаться.
Возвращает
R - строка, с удалёнными в начале символами, содержащимися в литерале и пробельными символами.

◆ trimmed_right() [1/3]

R simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::trimmed_right ( ) const
inlineinherited

Получить строку с удалением пробельных символов справа.

Параметры шаблона
R- желаемый тип строки, по умолчанию str_src.
Возвращает
R - строка, с удалёнными в конце пробельными символами.

◆ trimmed_right() [2/3]

R simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::trimmed_right ( str_piece pattern) const
inlineinherited

Получить строку с удалением символов, заданных другой строкой, справа.

Параметры шаблона
R- желаемый тип строки, по умолчанию str_src.
Аргументы
pattern- строка, задающая символы, которые будут обрезаться.
Возвращает
R - строка, с удалёнными в конце символами, содержащимися в шаблоне.

◆ trimmed_right() [3/3]

R simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::trimmed_right ( T && pattern) const
inlineinherited

Получить строку с удалением символов, заданных строковым литералом, справа.

Параметры шаблона
R- желаемый тип строки, по умолчанию str_src.
Аргументы
pattern- строковый литерал, задающий символы, которые будут обрезаться.
Возвращает
R - строка, с удалёнными в конце символами, содержащимися в литерале.

◆ trimmed_right_with_spaces() [1/2]

R simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::trimmed_right_with_spaces ( str_piece pattern) const
inlineinherited

Получить строку с удалением символов, заданных другой строкой, а также пробельных символов, справа.

Параметры шаблона
R- желаемый тип строки, по умолчанию str_src.
Аргументы
pattern- строка, задающая символы, которые будут обрезаться.
Возвращает
R - строка, с удалёнными в конце символами, содержащимися в шаблоне и пробельными символами.

◆ trimmed_right_with_spaces() [2/2]

R simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::trimmed_right_with_spaces ( T && pattern) const
inlineinherited

Получить строку с удалением символов, заданных строковым литералом, а также пробельных символов, справа.

Параметры шаблона
R- желаемый тип строки, по умолчанию str_src.
Аргументы
pattern- строковый литерал, задающий символы, которые будут обрезаться.
Возвращает
R - строка, с удалёнными в конце символами, содержащимися в литерале и пробельными символами.

◆ trimmed_with_spaces() [1/2]

R simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::trimmed_with_spaces ( str_piece pattern) const
inlineinherited

Получить строку с удалением символов, заданных другой строкой, а также пробельных символов, слева и справа.

Параметры шаблона
R- желаемый тип строки, по умолчанию str_src.
Аргументы
pattern- строка, задающая символы, которые будут обрезаться.
Возвращает
R - строка, с удалёнными в начале и в конце символами, содержащимися в шаблоне и пробельными символами.

◆ trimmed_with_spaces() [2/2]

R simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::trimmed_with_spaces ( T && pattern) const
inlineinherited

Получить строку с удалением символов, заданных строковым литералом, а также пробельных символов, слева и справа.

Параметры шаблона
R- желаемый тип строки, по умолчанию str_src.
Аргументы
pattern- строковый литерал, задающий символы, которые будут обрезаться.
Возвращает
R - строка, с удалёнными в начале и в конце символами, содержащимися в литерале и пробельными символами.

◆ upper()

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::upper ( )
inlineinherited

Преобразовать в верхний регистр Unicode символы первой плоскости (<0xFFFF).

Регистр меняется упрощенными таблицами, где один code_point всегда меняется в один code_point (но для UTF-8 возможно, что длина в code unit'ах изменится).

Возвращает
Impl& - ссылку на себя же

◆ upper_only_ascii()

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::upper_only_ascii ( )
inlineinherited

Преобразовать в верхний регистр ASCII символы.

Возвращает
Impl& - ссылку на себя же.

◆ upperred()

R simstr::str_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::upperred ( ) const
inlineinherited

Получить копию строки в верхнем регистре Unicode символов первой плоскости (<0xFFFF).

Параметры шаблона
R- желаемый тип строки, по умолчанию тот же, чей метод вызывался.
Возвращает
R - копию строки в верхнем регистре.

◆ upperred_from()

static my_type simstr::str_storable< K, lstring< K, N, false, allocator_string >, allocator_string >::upperred_from ( const From & f,
Args &&... args )
inlinestaticinherited

Создать копию переданной строки в верхнем регистре символов Unicode первой плоскости (<0xFFFF).

Аргументы
f- строка источник.
...args- параметры для инициализации аллокатора.

Регистр меняется упрощенными таблицами, где один code_point всегда меняется в один code_point (но для UTF-8 возможно, что длина в code unit'ах изменится).

◆ upperred_only_ascii()

R simstr::str_src_algs< K, simple_str< K >, lstring< K, N, false, allocator_string >, Mutable >::upperred_only_ascii ( ) const
inlineinherited

Получить копию строки в верхнем регистре ASCII символов.

Параметры шаблона
R- желаемый тип строки, по умолчанию тот же, чей метод вызывался.
Возвращает
R - копию строки в верхнем регистре.

◆ upperred_only_ascii_from()

static my_type simstr::str_storable< K, lstring< K, N, false, allocator_string >, allocator_string >::upperred_only_ascii_from ( const From & f,
Args &&... args )
inlinestaticinherited

Создать строку, копию переданной в верхнем регистре символов ASCII.

Аргументы
f- строка источник.
...args- параметры для инициализации аллокатора.

◆ vformat()

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::vformat ( str_piece format,
T &&... args )
inlineinherited

Форматирует строку с помощью std::vformat.

Аргументы
format- форматная строка.
...args- аргументы для std::vformat.
Возвращает
Impl& - ссылку на себя же.

При необходимости автоматически увеличивает размер буфера строки.

◆ vformat_from()

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::vformat_from ( size_t from,
size_t max_write,
str_piece format,
T &&... args )
inlineinherited

Добавляет отформатированный с помощью std::vformat вывод, начиная с указанной позиции.

Аргументы
from- начальная позиция добавления.
max_write- максимальное количество записываемых символов.
format- форматная строка.
...args- аргументы для std::vformat.
Возвращает
Impl& - ссылку на себя же.

При необходимости автоматически увеличивает размер буфера строки.

◆ vformat_n()

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::vformat_n ( size_t max_write,
str_piece format,
T &&... args )
inlineinherited

Форматирует строку с помощью std::vformat не более указанного размера.

Аргументы
max_write- максимальное количество записываемых символов.
format- форматная строка.
...args- аргументы для std::vformat.
Возвращает
Impl& - ссылку на себя же.

При необходимости автоматически увеличивает размер буфера строки.

◆ with()

lstring< K, N, false, allocator_string > & simstr::str_mutable< K, lstring< K, N, false, allocator_string > >::with ( const Op & fillFunction,
Args &&... args )
inlineinherited

Вызов функтора со строкой и переданными аргументами.

Аргументы
fillFunction- функтор, принимающий первым параметром ссылку на строку.
...args- аргументы, передаваемые в функтор.
Возвращает
Impl& - ссылку на себя же.

Объявления и описания членов класса находятся в файле: