simstr 1.0
Yet another strings library
 
Загрузка...
Поиск...
Не найдено
Шаблон класса simstr::str_mutable< K, Impl >

Базовый класс работы с изменяемыми строками Подробнее...

#include <sstring.h>

Граф наследования:simstr::str_mutable< K, Impl >:
simstr::lstring< K, N, forShared, Allocator > simstr::lstring< u8s, N > simstr::lstring< wchar_t, N > simstr::lstring< u16s, N > simstr::lstring< u32s, N > simstr::lstring< u8s, N, true > simstr::lstring< wchar_t, N, true > simstr::lstring< u16s, N, true > simstr::lstring< u32s, N, true >

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

K * str () noexcept
 Получить указатель на буфер строки
 
 operator K* () noexcept
 Получить указатель на буфер строки
 
Impl & trim ()
 Удалить пробельные символы в начале и в конце строки
 
Impl & trim_left ()
 Удалить пробельные символы в начале строки
 
Impl & trim_right ()
 Удалить пробельные символы в конце строки
 
template<typename T, size_t N = const_lit_for<K, T>::Count>
requires is_const_pattern<N>
Impl & trim (T &&pattern)
 Удалить символы, входящие в строковый литерал, в начале и в конце строки.
 
template<typename T, size_t N = const_lit_for<K, T>::Count>
requires is_const_pattern<N>
Impl & trim_left (T &&pattern)
 Удалить символы, входящие в строковый литерал, в начале строки.
 
template<typename T, size_t N = const_lit_for<K, T>::Count>
requires is_const_pattern<N>
Impl & trim_right (T &&pattern)
 Удалить символы, входящие в строковый литерал, в конце строки.
 
template<typename T, size_t N = const_lit_for<K, T>::Count>
requires is_const_pattern<N>
Impl & trim_with_spaces (T &&pattern)
 Удалить символы, входящие в строковый литерал, а также пробельные символы, в начале и в конце строки.
 
template<typename T, size_t N = const_lit_for<K, T>::Count>
requires is_const_pattern<N>
Impl & trim_left_with_spaces (T &&pattern)
 Удалить символы, входящие в строковый литерал, а также пробельные символы, в начале строки.
 
template<typename T, size_t N = const_lit_for<K, T>::Count>
requires is_const_pattern<N>
Impl & trim_right_with_wpaces (T &&pattern)
 Удалить символы, входящие в строковый литерал, а также пробельные символы, в конце строки.
 
Impl & trim (str_piece pattern)
 Удалить символы, входящие в переданную строку, в начале и в конце строки.
 
Impl & trim_left (str_piece pattern)
 Удалить символы, входящие в переданную строку, в начале строки.
 
Impl & trim_right (str_piece pattern)
 Удалить символы, входящие в переданную строку, в конце строки.
 
Impl & trim_with_spaces (str_piece pattern)
 Удалить символы, входящие в переданную строку, а также пробельные символы, в начале и в конце строки.
 
Impl & trim_left_with_spaces (str_piece pattern)
 Удалить символы, входящие в переданную строку, а также пробельные символы, в начале строки.
 
Impl & trim_right_with_spaces (str_piece pattern)
 Удалить символы, входящие в переданную строку, а также пробельные символы, в конце строки.
 
Impl & upper_only_ascii ()
 Преобразовать в верхний регистр ASCII символы
 
Impl & lower_only_ascii ()
 Преобразовать в нижний регистр ASCII символы
 
Impl & upper ()
 Преобразовать в верхний регистр Unicode символы первой плоскости (<0xFFFF).
 
Impl & lower ()
 Преобразовать в нижний регистр Unicode символы первой плоскости (<0xFFFF).
 
Impl & append (str_piece other)
 Добавить другую строку в конец строки
 
template<StrExprForType< K > A>
Impl & append (const A &expr)
 Добавить строковое выражение в конец строки
 
Impl & operator+= (str_piece other)
 Добавить другую строку в конец строки
 
template<StrExprForType< K > A>
Impl & operator+= (const A &expr)
 Добавить строковое выражение в конец строки
 
Impl & append_in (size_t pos, str_piece other)
 Добавить другую строку, начиная с заданной позиции
 
template<StrExprForType< K > A>
Impl & append_in (size_t pos, const A &expr)
 Добавить строковое выражение, начиная с заданной позиции
 
Impl & change (size_t from, size_t len, str_piece other)
 Заменить кусок строки на другую строку
 
template<StrExprForType< K > A>
Impl & change (size_t from, size_t len, const A &expr)
 Заменить кусок строки на строковое выражение
 
Impl & insert (size_t to, str_piece other)
 Вставить строку в указанную позицию
 
template<StrExprForType< K > A>
Impl & insert (size_t to, const A &expr)
 Вставить строковое выражение в указанную позицию
 
Impl & remove (size_t from, size_t len)
 Удалить часть строку
 
Impl & prepend (str_piece other)
 Добавить другую строку в начало строки
 
template<StrExprForType< K > A>
Impl & prepend (const A &expr)
 Добавить строковое выражение в начало строки
 
Impl & replace (str_piece pattern, str_piece repl, size_t offset=0, size_t maxCount=0)
 Заменить вхождения подстроки на другую строку
 
template<StrType< K > From>
Impl & replace_from (const From &f, str_piece pattern, str_piece repl, size_t offset=0, size_t maxCount=0)
 Скопировать строку-источник, заменив вхождения подстрок на другую строку
 
template<typename Op>
Impl & fill (size_t from, const Op &fillFunction)
 Заполнение буфера строки с помощью функтора
 
template<typename Op>
requires std::is_invocable_v<Op, K*, size_t>
Impl & operator<< (const Op &fillFunction)
 Заполняет строку методом fill с нулевой позиции
 
template<typename Op>
requires std::is_invocable_v<Op, K*, size_t>
Impl & operator<<= (const Op &fillFunction)
 Заполняет строку методом fill после конца строки
 
template<typename Op>
requires std::is_invocable_v<Op, my_type&>
Impl & operator<< (const Op &fillFunction)
 Вызывает переданный функтор, передав ссылку на себя
 
template<typename... T>
requires (is_one_of_std_char_v<K>)
Impl & printf_from (size_t from, const K *format, T &&... args)
 Добавляет отформатированный с помощью sprintf вывод, начиная с указанной позиции
 
template<typename... T>
requires (is_one_of_std_char_v<K>)
Impl & printf (const K *format, T &&... args)
 Форматирует строку помощью sprintf.
 
template<typename... T>
requires (is_one_of_std_char_v<K>)
Impl & append_printf (const K *format, T &&... args)
 Добавляет отформатированный с помощью sprintf вывод в конец строки
 
template<typename... T>
requires (is_one_of_std_char_v<K>)
Impl & format_from (size_t from, const FmtString< K, T... > &format, T &&... args)
 Добавляет отформатированный с помощью std::format вывод, начиная с указанной позиции
 
template<typename... T>
requires (is_one_of_std_char_v<K>)
Impl & vformat_from (size_t from, size_t max_write, str_piece format, T &&... args)
 Добавляет отформатированный с помощью std::vformat вывод, начиная с указанной позиции
 
template<typename... T>
requires (is_one_of_std_char_v<K>)
Impl & format (const FmtString< K, T... > &pattern, T &&... args)
 Форматирует строку с помощью std::format.
 
template<typename... T>
requires (is_one_of_std_char_v<K>)
Impl & append_formatted (const FmtString< K, T... > &format, T &&... args)
 Добавляет отформатированный с помощью std::format вывод в конец строки
 
template<typename... T>
requires (is_one_of_std_char_v<K>)
Impl & vformat (str_piece format, T &&... args)
 Форматирует строку с помощью std::vformat.
 
template<typename... T>
requires (is_one_of_std_char_v<K>)
Impl & append_vformatted (str_piece format, T &&... args)
 Добавляет отформатированный с помощью std::vformat вывод в конец строки
 
template<typename... T>
requires (is_one_of_std_char_v<K>)
Impl & vformat_n (size_t max_write, str_piece format, T &&... args)
 Форматирует строку с помощью std::vformat не более указанного размера
 
template<typename... T>
requires (is_one_of_std_char_v<K>)
Impl & append_vformatted_n (size_t max_write, str_piece format, T &&... args)
 Добавляет отформатированный с помощью std::vformat вывод в конец строки, записывая не более указанного количества символов
 
template<typename Op, typename... Args>
Impl & with (const Op &fillFunction, Args &&... args)
 Вызов функтора со строкой и переданными аргументами
 

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

template<typename K, typename Impl>
class simstr::str_mutable< K, Impl >

Базовый класс работы с изменяемыми строками

Параметры шаблона
K- тип символов
Impl- конечный тип наследника

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

  • size_t length() const noexcept - возвращает длину строки
  • const K* symbols() const - возвращает указатель на начало строки
  • bool is_empty() const noexcept - проверка, не пустая ли строка
  • K* str() noexcept - Неконстантный указатель на начало строки
  • K* set_size(size_t size) - Изменить размер строки, как больше, так и меньше. Содержимое строки нужно оставить.
  • K* reserve_no_preserve(size_t size) - выделить место под строку, старую можно не сохранять
  • K* alloc_for_copy(size_t size) - выделить место для копии строки заданного размера, пока не изменяя саму строку, можно вернуть текущий буфер, если место позволяет.
  • set_from_copy(K* str, size_t size) - присвоить строку из памяти, ранее выделенной в alloc_for_copy. Если место выделялось в текущем буфере, ничего не делать.
  • size_t capacity() const noexcept - вернуть текущую ёмкость строки, сколько может поместится без аллокации

Методы

◆ append() [1/2]

template<typename K, typename Impl>
template<StrExprForType< K > A>
Impl & simstr::str_mutable< K, Impl >::append ( const A & expr)
inline

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

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

◆ append() [2/2]

template<typename K, typename Impl>
Impl & simstr::str_mutable< K, Impl >::append ( str_piece other)
inline

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

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

◆ append_formatted()

template<typename K, typename Impl>
template<typename... T>
requires (is_one_of_std_char_v<K>)
Impl & simstr::str_mutable< K, Impl >::append_formatted ( const FmtString< K, T... > & format,
T &&... args )
inline

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

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

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

◆ append_in() [1/2]

template<typename K, typename Impl>
template<StrExprForType< K > A>
Impl & simstr::str_mutable< K, Impl >::append_in ( size_t pos,
const A & expr )
inline

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

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

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

◆ append_in() [2/2]

template<typename K, typename Impl>
Impl & simstr::str_mutable< K, Impl >::append_in ( size_t pos,
str_piece other )
inline

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

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

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

◆ append_printf()

template<typename K, typename Impl>
template<typename... T>
requires (is_one_of_std_char_v<K>)
Impl & simstr::str_mutable< K, Impl >::append_printf ( const K * format,
T &&... args )
inline

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

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

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

◆ append_vformatted()

template<typename K, typename Impl>
template<typename... T>
requires (is_one_of_std_char_v<K>)
Impl & simstr::str_mutable< K, Impl >::append_vformatted ( str_piece format,
T &&... args )
inline

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

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

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

◆ append_vformatted_n()

template<typename K, typename Impl>
template<typename... T>
requires (is_one_of_std_char_v<K>)
Impl & simstr::str_mutable< K, Impl >::append_vformatted_n ( size_t max_write,
str_piece format,
T &&... args )
inline

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

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

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

◆ change() [1/2]

template<typename K, typename Impl>
template<StrExprForType< K > A>
Impl & simstr::str_mutable< K, Impl >::change ( size_t from,
size_t len,
const A & expr )
inline

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

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

◆ change() [2/2]

template<typename K, typename Impl>
Impl & simstr::str_mutable< K, Impl >::change ( size_t from,
size_t len,
str_piece other )
inline

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

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

◆ fill()

template<typename K, typename Impl>
template<typename Op>
Impl & simstr::str_mutable< K, Impl >::fill ( size_t from,
const Op & fillFunction )
inline

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

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

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

◆ format()

template<typename K, typename Impl>
template<typename... T>
requires (is_one_of_std_char_v<K>)
Impl & simstr::str_mutable< K, Impl >::format ( const FmtString< K, T... > & pattern,
T &&... args )
inline

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

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

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

◆ format_from()

template<typename K, typename Impl>
template<typename... T>
requires (is_one_of_std_char_v<K>)
Impl & simstr::str_mutable< K, Impl >::format_from ( size_t from,
const FmtString< K, T... > & format,
T &&... args )
inline

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

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

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

◆ insert() [1/2]

template<typename K, typename Impl>
template<StrExprForType< K > A>
Impl & simstr::str_mutable< K, Impl >::insert ( size_t to,
const A & expr )
inline

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

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

◆ insert() [2/2]

template<typename K, typename Impl>
Impl & simstr::str_mutable< K, Impl >::insert ( size_t to,
str_piece other )
inline

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

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

◆ lower()

template<typename K, typename Impl>
Impl & simstr::str_mutable< K, Impl >::lower ( )
inline

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

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

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

◆ lower_only_ascii()

template<typename K, typename Impl>
Impl & simstr::str_mutable< K, Impl >::lower_only_ascii ( )
inline

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

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

◆ operator K*()

template<typename K, typename Impl>
simstr::str_mutable< K, Impl >::operator K* ( )
inlineexplicitnoexcept

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

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

◆ operator+=() [1/2]

template<typename K, typename Impl>
template<StrExprForType< K > A>
Impl & simstr::str_mutable< K, Impl >::operator+= ( const A & expr)
inline

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

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

◆ operator+=() [2/2]

template<typename K, typename Impl>
Impl & simstr::str_mutable< K, Impl >::operator+= ( str_piece other)
inline

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

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

◆ operator<<() [1/2]

template<typename K, typename Impl>
template<typename Op>
requires std::is_invocable_v<Op, K*, size_t>
Impl & simstr::str_mutable< K, Impl >::operator<< ( const Op & fillFunction)
inline

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

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

◆ operator<<() [2/2]

template<typename K, typename Impl>
template<typename Op>
requires std::is_invocable_v<Op, my_type&>
Impl & simstr::str_mutable< K, Impl >::operator<< ( const Op & fillFunction)
inline

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

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

◆ operator<<=()

template<typename K, typename Impl>
template<typename Op>
requires std::is_invocable_v<Op, K*, size_t>
Impl & simstr::str_mutable< K, Impl >::operator<<= ( const Op & fillFunction)
inline

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

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

◆ prepend() [1/2]

template<typename K, typename Impl>
template<StrExprForType< K > A>
Impl & simstr::str_mutable< K, Impl >::prepend ( const A & expr)
inline

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

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

◆ prepend() [2/2]

template<typename K, typename Impl>
Impl & simstr::str_mutable< K, Impl >::prepend ( str_piece other)
inline

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

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

◆ printf()

template<typename K, typename Impl>
template<typename... T>
requires (is_one_of_std_char_v<K>)
Impl & simstr::str_mutable< K, Impl >::printf ( const K * format,
T &&... args )
inline

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

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

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

◆ printf_from()

template<typename K, typename Impl>
template<typename... T>
requires (is_one_of_std_char_v<K>)
Impl & simstr::str_mutable< K, Impl >::printf_from ( size_t from,
const K * format,
T &&... args )
inline

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

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

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

◆ remove()

template<typename K, typename Impl>
Impl & simstr::str_mutable< K, Impl >::remove ( size_t from,
size_t len )
inline

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

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

◆ replace()

template<typename K, typename Impl>
Impl & simstr::str_mutable< K, Impl >::replace ( str_piece pattern,
str_piece repl,
size_t offset = 0,
size_t maxCount = 0 )
inline

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

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

◆ replace_from()

template<typename K, typename Impl>
template<StrType< K > From>
Impl & simstr::str_mutable< K, Impl >::replace_from ( const From & f,
str_piece pattern,
str_piece repl,
size_t offset = 0,
size_t maxCount = 0 )
inline

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

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

◆ str()

template<typename K, typename Impl>
K * simstr::str_mutable< K, Impl >::str ( )
inlinenoexcept

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

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

◆ trim() [1/3]

template<typename K, typename Impl>
Impl & simstr::str_mutable< K, Impl >::trim ( )
inline

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

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

◆ trim() [2/3]

template<typename K, typename Impl>
Impl & simstr::str_mutable< K, Impl >::trim ( str_piece pattern)
inline

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

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

◆ trim() [3/3]

template<typename K, typename Impl>
template<typename T, size_t N = const_lit_for<K, T>::Count>
requires is_const_pattern<N>
Impl & simstr::str_mutable< K, Impl >::trim ( T && pattern)
inline

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

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

◆ trim_left() [1/3]

template<typename K, typename Impl>
Impl & simstr::str_mutable< K, Impl >::trim_left ( )
inline

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

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

◆ trim_left() [2/3]

template<typename K, typename Impl>
Impl & simstr::str_mutable< K, Impl >::trim_left ( str_piece pattern)
inline

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

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

◆ trim_left() [3/3]

template<typename K, typename Impl>
template<typename T, size_t N = const_lit_for<K, T>::Count>
requires is_const_pattern<N>
Impl & simstr::str_mutable< K, Impl >::trim_left ( T && pattern)
inline

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

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

◆ trim_left_with_spaces() [1/2]

template<typename K, typename Impl>
Impl & simstr::str_mutable< K, Impl >::trim_left_with_spaces ( str_piece pattern)
inline

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

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

◆ trim_left_with_spaces() [2/2]

template<typename K, typename Impl>
template<typename T, size_t N = const_lit_for<K, T>::Count>
requires is_const_pattern<N>
Impl & simstr::str_mutable< K, Impl >::trim_left_with_spaces ( T && pattern)
inline

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

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

◆ trim_right() [1/3]

template<typename K, typename Impl>
Impl & simstr::str_mutable< K, Impl >::trim_right ( )
inline

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

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

◆ trim_right() [2/3]

template<typename K, typename Impl>
Impl & simstr::str_mutable< K, Impl >::trim_right ( str_piece pattern)
inline

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

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

◆ trim_right() [3/3]

template<typename K, typename Impl>
template<typename T, size_t N = const_lit_for<K, T>::Count>
requires is_const_pattern<N>
Impl & simstr::str_mutable< K, Impl >::trim_right ( T && pattern)
inline

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

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

◆ trim_right_with_spaces()

template<typename K, typename Impl>
Impl & simstr::str_mutable< K, Impl >::trim_right_with_spaces ( str_piece pattern)
inline

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

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

◆ trim_right_with_wpaces()

template<typename K, typename Impl>
template<typename T, size_t N = const_lit_for<K, T>::Count>
requires is_const_pattern<N>
Impl & simstr::str_mutable< K, Impl >::trim_right_with_wpaces ( T && pattern)
inline

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

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

◆ trim_with_spaces() [1/2]

template<typename K, typename Impl>
Impl & simstr::str_mutable< K, Impl >::trim_with_spaces ( str_piece pattern)
inline

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

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

◆ trim_with_spaces() [2/2]

template<typename K, typename Impl>
template<typename T, size_t N = const_lit_for<K, T>::Count>
requires is_const_pattern<N>
Impl & simstr::str_mutable< K, Impl >::trim_with_spaces ( T && pattern)
inline

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

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

◆ upper()

template<typename K, typename Impl>
Impl & simstr::str_mutable< K, Impl >::upper ( )
inline

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

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

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

◆ upper_only_ascii()

template<typename K, typename Impl>
Impl & simstr::str_mutable< K, Impl >::upper_only_ascii ( )
inline

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

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

◆ vformat()

template<typename K, typename Impl>
template<typename... T>
requires (is_one_of_std_char_v<K>)
Impl & simstr::str_mutable< K, Impl >::vformat ( str_piece format,
T &&... args )
inline

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

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

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

◆ vformat_from()

template<typename K, typename Impl>
template<typename... T>
requires (is_one_of_std_char_v<K>)
Impl & simstr::str_mutable< K, Impl >::vformat_from ( size_t from,
size_t max_write,
str_piece format,
T &&... args )
inline

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

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

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

◆ vformat_n()

template<typename K, typename Impl>
template<typename... T>
requires (is_one_of_std_char_v<K>)
Impl & simstr::str_mutable< K, Impl >::vformat_n ( size_t max_write,
str_piece format,
T &&... args )
inline

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

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

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

◆ with()

template<typename K, typename Impl>
template<typename Op, typename... Args>
Impl & simstr::str_mutable< K, Impl >::with ( const Op & fillFunction,
Args &&... args )
inline

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

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

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