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

Класс с базовыми константными строковыми алгоритмами. Подробнее...

#include <strexpr.h>

Граф наследования:simstr::str_src_algs< K, StrRef, Impl, Mutable >:
simstr::str_algs< K, simple_str< K >, my_type, true > simstr::str_algs< K, simple_str< K >, my_type, false > simstr::str_algs< K, StrRef, Impl, Mutable > simstr::lstring< K, N, forShared, Allocator > simstr::lstring< u8s, N > simstr::lstring< ubs, N > simstr::lstring< wchar_t, N > simstr::lstring< u16s, N > simstr::lstring< u32s, N > simstr::lstring< u8s, N, true > simstr::lstring< ubs, N, true > simstr::lstring< wchar_t, N, true > simstr::lstring< u16s, N, true > simstr::lstring< u32s, N, true > simstr::simple_str< u8s > simstr::simple_str< ubs > simstr::simple_str< wchar_t > simstr::simple_str< u16s > simstr::simple_str< u32s > simstr::sstring< K, Allocator > simstr::sstring< u8s > simstr::sstring< ubs > simstr::sstring< wchar_t > simstr::sstring< u16s > simstr::sstring< u32s >

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

constexpr K * place (K *ptr) const noexcept
 Копировать строку в указанный буфер.
 
void copy_to (K *buffer, size_t bufSize)
 Копировать строку в указанный буфер.
 
constexpr size_t size () const
 Размер строки в символах.
 
template<typename D = K>
requires is_equal_str_type_v<K, D>
constexpr std::basic_string_view< D > to_sv () const noexcept
 Конвертировать в std::basic_string_view.
 
template<typename D, typename Traits>
requires is_equal_str_type_v<K, D>
constexpr operator std::basic_string_view< D, Traits > () const
 Конвертировать в std::basic_string_view.
 
template<typename D = K, typename Traits = std::char_traits<D>, typename Allocator = std::allocator<D>>
requires is_equal_str_type_v<K, D>
constexpr std::basic_string< D, Traits, Allocator > to_string () const
 Конвертировать в std::basic_string.
 
template<typename D, typename Traits, typename Allocator>
requires is_equal_str_type_v<K, D>
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 auto operator<=> (const base &other) const noexcept
 Оператор сравнения строк.
 
template<typename T, size_t N = const_lit_for<K, T>::Count>
constexpr bool operator== (T &&other) const noexcept
 Оператор сравнения строки и строкового литерала на равенство.
 
template<typename T, size_t N = const_lit_for<K, T>::Count>
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
 Найти начало первого вхождения подстроки в этой строке.
 
template<typename Exc, typename ... Args>
requires std::is_constructible_v<Exc, Args...>
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_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_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 size_t find (K s, size_t offset=0) const noexcept
 Найти символ в этой строке.
 
constexpr size_t find_or_all (K s, size_t offset=0) const noexcept
 Найти символ в этой строке или конец строки.
 
template<typename Op>
constexpr void for_all_finded (const Op &op, str_piece pattern, size_t offset=0, size_t maxCount=0) const
 Вызвать функтор для всех найденных вхождений подстроки в этой строке.
 
template<typename To = std::vector<size_t>>
constexpr To find_all (str_piece pattern, size_t offset=0, size_t maxCount=0) const
 Найти все вхождения подстроки в этой строке.
 
constexpr size_t find_last (K s, size_t offset=-1) const noexcept
 Найти последнее вхождения символа в этой строке.
 
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.
 
template<ToIntNumber T, bool CheckOverflow = true, unsigned Base = 0, bool SkipWs = true, bool AllowSign = true>
constexpr T as_int () const noexcept
 Преобразовать строку в число заданного типа.
 
template<ToIntNumber T, bool CheckOverflow = true, unsigned Base = 0, bool SkipWs = true, bool AllowSign = true>
constexpr convert_result< T > to_int () const noexcept
 Преобразовать строку в число заданного типа.
 
template<bool SkipWS = true, bool AllowPlus = true>
requires (sizeof(K) == 1)
std::optional< double > to_double () const noexcept
 Преобразовать строку в double.
 
template<bool SkipWS = true>
requires (sizeof(K) == 1)
std::optional< double > to_double_hex () const noexcept
 Преобразовать строку в 16ричной записи в double. Пока работает только для char.
 
template<ToIntNumber T>
constexpr void as_number (T &t) const
 Преобразовать строку в целое число.
 
template<typename T, typename Op>
constexpr T splitf (str_piece delimiter, const Op &beforeFunc, size_t offset=0) const
 Разделить строку на части по заданному разделителю, с возможным применением функтора к каждой подстроке.
 
template<typename T>
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 символы.
 
template<typename R = my_type>
upperred_only_ascii () const
 Получить копию строки в верхнем регистре ASCII символов.
 
template<typename R = my_type>
lowered_only_ascii () const
 Получить копию строки в нижнем регистре ASCII символов.
 
template<typename R = my_type>
replaced (str_piece pattern, str_piece repl, size_t offset=0, size_t maxCount=0) const
 Получить копию строки с заменёнными вхождениями подстрок.
 
template<typename R = str_piece>
constexpr R trimmed () const
 Получить строку с удалением пробельных символов слева и справа.
 
template<typename R = str_piece>
trimmed_left () const
 Получить строку с удалением пробельных символов слева.
 
template<typename R = str_piece>
trimmed_right () const
 Получить строку с удалением пробельных символов справа.
 
template<typename R = str_piece, typename T, size_t N = const_lit_for<K, T>::Count>
requires is_const_pattern<N>
trimmed (T &&pattern) const
 Получить строку с удалением символов, заданных строковым литералом, слева и справа.
 
template<typename R = str_piece, typename T, size_t N = const_lit_for<K, T>::Count>
requires is_const_pattern<N>
trimmed_left (T &&pattern) const
 Получить строку с удалением символов, заданных строковым литералом, слева.
 
template<typename R = str_piece, typename T, size_t N = const_lit_for<K, T>::Count>
requires is_const_pattern<N>
trimmed_right (T &&pattern) const
 Получить строку с удалением символов, заданных строковым литералом, справа.
 
template<typename R = str_piece, typename T, size_t N = const_lit_for<K, T>::Count>
requires is_const_pattern<N>
trimmed_with_spaces (T &&pattern) const
 Получить строку с удалением символов, заданных строковым литералом, а также пробельных символов, слева и справа.
 
template<typename R = str_piece, typename T, size_t N = const_lit_for<K, T>::Count>
requires is_const_pattern<N>
trimmed_left_with_spaces (T &&pattern) const
 Получить строку с удалением символов, заданных строковым литералом, а также пробельных символов, слева.
 
template<typename R = str_piece, typename T, size_t N = const_lit_for<K, T>::Count>
requires is_const_pattern<N>
trimmed_right_with_spaces (T &&pattern) const
 Получить строку с удалением символов, заданных строковым литералом, а также пробельных символов, справа.
 
template<typename R = str_piece>
trimmed (str_piece pattern) const
 Получить строку с удалением символов, заданных другой строкой, слева и справа.
 
template<typename R = str_piece>
trimmed_left (str_piece pattern) const
 Получить строку с удалением символов, заданных другой строкой, слева.
 
template<typename R = str_piece>
trimmed_right (str_piece pattern) const
 Получить строку с удалением символов, заданных другой строкой, справа.
 
template<typename R = str_piece>
trimmed_with_spaces (str_piece pattern) const
 Получить строку с удалением символов, заданных другой строкой, а также пробельных символов, слева и справа.
 
template<typename R = str_piece>
trimmed_left_with_spaces (str_piece pattern) const
 Получить строку с удалением символов, заданных другой строкой, а также пробельных символов, слева.
 
template<typename R = str_piece>
trimmed_right_with_spaces (str_piece pattern) const
 Получить строку с удалением символов, заданных другой строкой, а также пробельных символов, справа.
 
constexpr SplitterBase< K, str_piece > splitter (str_piece delimiter) const
 Получить объект Splitter по заданному разделителю, который позволяет последовательно получать подстроки методом next(), пока is_done() false.
 

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

template<typename K, typename StrRef, typename Impl, bool Mutable>
class simstr::str_src_algs< K, StrRef, Impl, Mutable >

Класс с базовыми константными строковыми алгоритмами.

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

  • size_t length() const noexcept - возвращает длину строки.
  • const K* symbols() const noexcept - возвращает указатель на начало строки.
  • bool is_empty() const noexcept - проверка, не пустая ли строка.
    Параметры шаблона
    K- тип символов.
    StrRef- тип хранилища куска строки.
    Impl- конечный класс наследник.

Методы

◆ as_int()

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<ToIntNumber T, bool CheckOverflow = true, unsigned Base = 0, bool SkipWs = true, bool AllowSign = true>
T simstr::str_src_algs< K, StrRef, Impl, Mutable >::as_int ( ) const
inlineconstexprnoexcept

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

Параметры шаблона
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()

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<ToIntNumber T>
void simstr::str_src_algs< K, StrRef, Impl, Mutable >::as_number ( T & t) const
inlineconstexpr

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

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

◆ at()

template<typename K, typename StrRef, typename Impl, bool Mutable>
K simstr::str_src_algs< K, StrRef, Impl, Mutable >::at ( ptrdiff_t idx) const
inlineconstexpr

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

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

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

◆ compare()

template<typename K, typename StrRef, typename Impl, bool Mutable>
int simstr::str_src_algs< K, StrRef, Impl, Mutable >::compare ( str_piece o) const
inlineconstexpr

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

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

◆ compare_ia()

template<typename K, typename StrRef, typename Impl, bool Mutable>
int simstr::str_src_algs< K, StrRef, Impl, Mutable >::compare_ia ( str_piece text) const
inlineconstexprnoexcept

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

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

◆ contains()

template<typename K, typename StrRef, typename Impl, bool Mutable>
bool simstr::str_src_algs< K, StrRef, Impl, Mutable >::contains ( str_piece pattern,
size_t offset = 0 ) const
inlineconstexprnoexcept

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

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

◆ copy_to()

template<typename K, typename StrRef, typename Impl, bool Mutable>
void simstr::str_src_algs< K, StrRef, Impl, Mutable >::copy_to ( K * buffer,
size_t bufSize )
inline

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

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

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

◆ ends_with()

template<typename K, typename StrRef, typename Impl, bool Mutable>
bool simstr::str_src_algs< K, StrRef, Impl, Mutable >::ends_with ( str_piece suffix) const
inlineconstexprnoexcept

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

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

◆ ends_with_ia()

template<typename K, typename StrRef, typename Impl, bool Mutable>
bool simstr::str_src_algs< K, StrRef, Impl, Mutable >::ends_with_ia ( str_piece suffix) const
inlineconstexprnoexcept

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

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

◆ equal()

template<typename K, typename StrRef, typename Impl, bool Mutable>
bool simstr::str_src_algs< K, StrRef, Impl, Mutable >::equal ( str_piece other) const
inlineconstexprnoexcept

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

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

◆ equal_ia()

template<typename K, typename StrRef, typename Impl, bool Mutable>
bool simstr::str_src_algs< K, StrRef, Impl, Mutable >::equal_ia ( str_piece text) const
inlineconstexprnoexcept

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

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

◆ find() [1/2]

template<typename K, typename StrRef, typename Impl, bool Mutable>
size_t simstr::str_src_algs< K, StrRef, Impl, Mutable >::find ( K s,
size_t offset = 0 ) const
inlineconstexprnoexcept

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

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

◆ find() [2/2]

template<typename K, typename StrRef, typename Impl, bool Mutable>
size_t simstr::str_src_algs< K, StrRef, Impl, Mutable >::find ( str_piece pattern,
size_t offset = 0 ) const
inlineconstexprnoexcept

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

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

◆ find_all()

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<typename To = std::vector<size_t>>
To simstr::str_src_algs< K, StrRef, Impl, Mutable >::find_all ( str_piece pattern,
size_t offset = 0,
size_t maxCount = 0 ) const
inlineconstexpr

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

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

◆ find_end()

template<typename K, typename StrRef, typename Impl, bool Mutable>
size_t simstr::str_src_algs< K, StrRef, Impl, Mutable >::find_end ( str_piece pattern,
size_t offset = 0 ) const
inlineconstexprnoexcept

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

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

◆ find_end_of_last()

template<typename K, typename StrRef, typename Impl, bool Mutable>
size_t simstr::str_src_algs< K, StrRef, Impl, Mutable >::find_end_of_last ( str_piece pattern,
size_t offset = -1 ) const
inlineconstexprnoexcept

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

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

◆ find_end_of_last_or_all()

template<typename K, typename StrRef, typename Impl, bool Mutable>
size_t simstr::str_src_algs< K, StrRef, Impl, Mutable >::find_end_of_last_or_all ( str_piece pattern,
size_t offset = -1 ) const
inlineconstexprnoexcept

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

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

◆ find_end_or_all()

template<typename K, typename StrRef, typename Impl, bool Mutable>
size_t simstr::str_src_algs< K, StrRef, Impl, Mutable >::find_end_or_all ( str_piece pattern,
size_t offset = 0 ) const
inlineconstexprnoexcept

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

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

◆ find_first_not_of()

template<typename K, typename StrRef, typename Impl, bool Mutable>
size_t simstr::str_src_algs< K, StrRef, Impl, Mutable >::find_first_not_of ( str_piece pattern,
size_t offset = 0 ) const
inlineconstexprnoexcept

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

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

◆ find_first_of()

template<typename K, typename StrRef, typename Impl, bool Mutable>
size_t simstr::str_src_algs< K, StrRef, Impl, Mutable >::find_first_of ( str_piece pattern,
size_t offset = 0 ) const
inlineconstexprnoexcept

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

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

◆ find_first_of_idx()

template<typename K, typename StrRef, typename Impl, bool Mutable>
std::pair< size_t, size_t > simstr::str_src_algs< K, StrRef, Impl, Mutable >::find_first_of_idx ( str_piece pattern,
size_t offset = 0 ) const
inlineconstexprnoexcept

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

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

◆ find_last() [1/2]

template<typename K, typename StrRef, typename Impl, bool Mutable>
size_t simstr::str_src_algs< K, StrRef, Impl, Mutable >::find_last ( K s,
size_t offset = -1 ) const
inlineconstexprnoexcept

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

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

◆ find_last() [2/2]

template<typename K, typename StrRef, typename Impl, bool Mutable>
size_t simstr::str_src_algs< K, StrRef, Impl, Mutable >::find_last ( str_piece pattern,
size_t offset = -1 ) const
inlineconstexprnoexcept

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

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

◆ find_last_not_of()

template<typename K, typename StrRef, typename Impl, bool Mutable>
size_t simstr::str_src_algs< K, StrRef, Impl, Mutable >::find_last_not_of ( str_piece pattern,
size_t offset = str::npos ) const
inlineconstexprnoexcept

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

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

◆ find_last_of()

template<typename K, typename StrRef, typename Impl, bool Mutable>
size_t simstr::str_src_algs< K, StrRef, Impl, Mutable >::find_last_of ( str_piece pattern,
size_t offset = str::npos ) const
inlineconstexprnoexcept

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

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

◆ find_last_of_idx()

template<typename K, typename StrRef, typename Impl, bool Mutable>
std::pair< size_t, size_t > simstr::str_src_algs< K, StrRef, Impl, Mutable >::find_last_of_idx ( str_piece pattern,
size_t offset = str::npos ) const
inlineconstexprnoexcept

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

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

◆ find_last_or_all()

template<typename K, typename StrRef, typename Impl, bool Mutable>
size_t simstr::str_src_algs< K, StrRef, Impl, Mutable >::find_last_or_all ( str_piece pattern,
size_t offset = -1 ) const
inlineconstexprnoexcept

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

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

◆ find_or_all() [1/2]

template<typename K, typename StrRef, typename Impl, bool Mutable>
size_t simstr::str_src_algs< K, StrRef, Impl, Mutable >::find_or_all ( K s,
size_t offset = 0 ) const
inlineconstexprnoexcept

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

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

◆ find_or_all() [2/2]

template<typename K, typename StrRef, typename Impl, bool Mutable>
size_t simstr::str_src_algs< K, StrRef, Impl, Mutable >::find_or_all ( str_piece pattern,
size_t offset = 0 ) const
inlineconstexprnoexcept

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

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

◆ find_or_throw()

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<typename Exc, typename ... Args>
requires std::is_constructible_v<Exc, Args...>
size_t simstr::str_src_algs< K, StrRef, Impl, Mutable >::find_or_throw ( str_piece pattern,
size_t offset = 0,
Args &&... args ) const
inlineconstexprnoexcept

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

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

◆ for_all_finded()

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<typename Op>
void simstr::str_src_algs< K, StrRef, Impl, Mutable >::for_all_finded ( const Op & op,
str_piece pattern,
size_t offset = 0,
size_t maxCount = 0 ) const
inlineconstexpr

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

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

◆ from_to()

template<typename K, typename StrRef, typename Impl, bool Mutable>
str_piece simstr::str_src_algs< K, StrRef, Impl, Mutable >::from_to ( size_t from,
size_t to ) const
inlineconstexprnoexcept

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

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

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

◆ less_ia()

template<typename K, typename StrRef, typename Impl, bool Mutable>
bool simstr::str_src_algs< K, StrRef, Impl, Mutable >::less_ia ( str_piece text) const
inlineconstexprnoexcept

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

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

◆ lowered_only_ascii()

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<typename R = my_type>
R simstr::str_src_algs< K, StrRef, Impl, Mutable >::lowered_only_ascii ( ) const
inline

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

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

◆ mid()

template<typename K, typename StrRef, typename Impl, bool Mutable>
str_piece simstr::str_src_algs< K, StrRef, Impl, Mutable >::mid ( size_t from,
size_t len = -1 ) const
inlineconstexprnoexcept

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

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

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

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<typename D, typename Traits, typename Allocator>
requires is_equal_str_type_v<K, D>
simstr::str_src_algs< K, StrRef, Impl, Mutable >::operator std::basic_string< D, Traits, Allocator > ( ) const
inlineconstexpr

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

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

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

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<typename D, typename Traits>
requires is_equal_str_type_v<K, D>
simstr::str_src_algs< K, StrRef, Impl, Mutable >::operator std::basic_string_view< D, Traits > ( ) const
inlineconstexpr

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

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

◆ operator str_piece()

template<typename K, typename StrRef, typename Impl, bool Mutable>
simstr::str_src_algs< K, StrRef, Impl, Mutable >::operator str_piece ( ) const
inlineconstexprnoexcept

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

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

◆ operator()()

template<typename K, typename StrRef, typename Impl, bool Mutable>
str_piece simstr::str_src_algs< K, StrRef, Impl, Mutable >::operator() ( ptrdiff_t from,
ptrdiff_t len = 0 ) const
inlineconstexprnoexcept

Получить часть строки как "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]

template<typename K, typename StrRef, typename Impl, bool Mutable>
auto simstr::str_src_algs< K, StrRef, Impl, Mutable >::operator<=> ( const base & other) const
inlineconstexprnoexcept

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

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

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

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<typename T, size_t N = const_lit_for<K, T>::Count>
auto simstr::str_src_algs< K, StrRef, Impl, Mutable >::operator<=> ( T && other) const
inlineconstexprnoexcept

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

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

◆ operator==() [1/2]

template<typename K, typename StrRef, typename Impl, bool Mutable>
bool simstr::str_src_algs< K, StrRef, Impl, Mutable >::operator== ( const base & other) const
inlineconstexprnoexcept

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

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

◆ operator==() [2/2]

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<typename T, size_t N = const_lit_for<K, T>::Count>
bool simstr::str_src_algs< K, StrRef, Impl, Mutable >::operator== ( T && other) const
inlineconstexprnoexcept

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

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

◆ place()

template<typename K, typename StrRef, typename Impl, bool Mutable>
K * simstr::str_src_algs< K, StrRef, Impl, Mutable >::place ( K * ptr) const
inlineconstexprnoexcept

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

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

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

◆ prefix_in()

template<typename K, typename StrRef, typename Impl, bool Mutable>
bool simstr::str_src_algs< K, StrRef, Impl, Mutable >::prefix_in ( str_piece text) const
inlineconstexprnoexcept

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

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

◆ replaced()

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<typename R = my_type>
R simstr::str_src_algs< K, StrRef, Impl, Mutable >::replaced ( str_piece pattern,
str_piece repl,
size_t offset = 0,
size_t maxCount = 0 ) const
inline

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

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

◆ size()

template<typename K, typename StrRef, typename Impl, bool Mutable>
size_t simstr::str_src_algs< K, StrRef, Impl, Mutable >::size ( ) const
inlineconstexpr

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

Возвращает
size_t

◆ split()

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<typename T>
T simstr::str_src_algs< K, StrRef, Impl, Mutable >::split ( str_piece delimiter,
size_t offset = 0 ) const
inlineconstexpr

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

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

◆ splitf()

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<typename T, typename Op>
T simstr::str_src_algs< K, StrRef, Impl, Mutable >::splitf ( str_piece delimiter,
const Op & beforeFunc,
size_t offset = 0 ) const
inlineconstexpr

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

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

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

◆ splitter()

template<typename K, typename StrRef, typename Impl, bool Mutable>
SplitterBase< K, str_piece > simstr::str_src_algs< K, StrRef, Impl, Mutable >::splitter ( str_piece delimiter) const
inlineconstexpr

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

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

◆ starts_with()

template<typename K, typename StrRef, typename Impl, bool Mutable>
bool simstr::str_src_algs< K, StrRef, Impl, Mutable >::starts_with ( str_piece prefix) const
inlineconstexprnoexcept

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

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

◆ starts_with_ia()

template<typename K, typename StrRef, typename Impl, bool Mutable>
bool simstr::str_src_algs< K, StrRef, Impl, Mutable >::starts_with_ia ( str_piece prefix) const
inlineconstexprnoexcept

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

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

◆ str_mid()

template<typename K, typename StrRef, typename Impl, bool Mutable>
my_type simstr::str_src_algs< K, StrRef, Impl, Mutable >::str_mid ( size_t from,
size_t len = -1 ) const
inlineconstexpr

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

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

◆ strcmp()

template<typename K, typename StrRef, typename Impl, bool Mutable>
int simstr::str_src_algs< K, StrRef, Impl, Mutable >::strcmp ( const K * text) const
inlineconstexpr

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

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

◆ substr()

template<typename K, typename StrRef, typename Impl, bool Mutable>
my_type simstr::str_src_algs< K, StrRef, Impl, Mutable >::substr ( ptrdiff_t from,
ptrdiff_t len = 0 ) const
inlineconstexpr

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

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

◆ to_double()

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<bool SkipWS = true, bool AllowPlus = true>
requires (sizeof(K) == 1)
std::optional< double > simstr::str_src_algs< K, StrRef, Impl, Mutable >::to_double ( ) const
inlinenoexcept

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

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

◆ to_double_hex()

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<bool SkipWS = true>
requires (sizeof(K) == 1)
std::optional< double > simstr::str_src_algs< K, StrRef, Impl, Mutable >::to_double_hex ( ) const
inlinenoexcept

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

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

◆ to_int()

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<ToIntNumber T, bool CheckOverflow = true, unsigned Base = 0, bool SkipWs = true, bool AllowSign = true>
convert_result< T > simstr::str_src_algs< K, StrRef, Impl, Mutable >::to_int ( ) const
inlineconstexprnoexcept

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

Параметры шаблона
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_str()

template<typename K, typename StrRef, typename Impl, bool Mutable>
str_piece simstr::str_src_algs< K, StrRef, Impl, Mutable >::to_str ( ) const
inlineconstexprnoexcept

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

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

◆ to_string()

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<typename D = K, typename Traits = std::char_traits<D>, typename Allocator = std::allocator<D>>
requires is_equal_str_type_v<K, D>
std::basic_string< D, Traits, Allocator > simstr::str_src_algs< K, StrRef, Impl, Mutable >::to_string ( ) const
inlineconstexpr

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

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

◆ to_sv()

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<typename D = K>
requires is_equal_str_type_v<K, D>
std::basic_string_view< D > simstr::str_src_algs< K, StrRef, Impl, Mutable >::to_sv ( ) const
inlineconstexprnoexcept

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

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

◆ trimmed() [1/3]

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<typename R = str_piece>
R simstr::str_src_algs< K, StrRef, Impl, Mutable >::trimmed ( ) const
inlineconstexpr

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

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

◆ trimmed() [2/3]

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<typename R = str_piece>
R simstr::str_src_algs< K, StrRef, Impl, Mutable >::trimmed ( str_piece pattern) const
inline

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

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

◆ trimmed() [3/3]

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<typename R = str_piece, typename T, size_t N = const_lit_for<K, T>::Count>
requires is_const_pattern<N>
R simstr::str_src_algs< K, StrRef, Impl, Mutable >::trimmed ( T && pattern) const
inline

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

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

◆ trimmed_left() [1/3]

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<typename R = str_piece>
R simstr::str_src_algs< K, StrRef, Impl, Mutable >::trimmed_left ( ) const
inline

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

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

◆ trimmed_left() [2/3]

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<typename R = str_piece>
R simstr::str_src_algs< K, StrRef, Impl, Mutable >::trimmed_left ( str_piece pattern) const
inline

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

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

◆ trimmed_left() [3/3]

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<typename R = str_piece, typename T, size_t N = const_lit_for<K, T>::Count>
requires is_const_pattern<N>
R simstr::str_src_algs< K, StrRef, Impl, Mutable >::trimmed_left ( T && pattern) const
inline

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

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

◆ trimmed_left_with_spaces() [1/2]

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<typename R = str_piece>
R simstr::str_src_algs< K, StrRef, Impl, Mutable >::trimmed_left_with_spaces ( str_piece pattern) const
inline

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

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

◆ trimmed_left_with_spaces() [2/2]

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<typename R = str_piece, typename T, size_t N = const_lit_for<K, T>::Count>
requires is_const_pattern<N>
R simstr::str_src_algs< K, StrRef, Impl, Mutable >::trimmed_left_with_spaces ( T && pattern) const
inline

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

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

◆ trimmed_right() [1/3]

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<typename R = str_piece>
R simstr::str_src_algs< K, StrRef, Impl, Mutable >::trimmed_right ( ) const
inline

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

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

◆ trimmed_right() [2/3]

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<typename R = str_piece>
R simstr::str_src_algs< K, StrRef, Impl, Mutable >::trimmed_right ( str_piece pattern) const
inline

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

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

◆ trimmed_right() [3/3]

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<typename R = str_piece, typename T, size_t N = const_lit_for<K, T>::Count>
requires is_const_pattern<N>
R simstr::str_src_algs< K, StrRef, Impl, Mutable >::trimmed_right ( T && pattern) const
inline

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

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

◆ trimmed_right_with_spaces() [1/2]

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<typename R = str_piece>
R simstr::str_src_algs< K, StrRef, Impl, Mutable >::trimmed_right_with_spaces ( str_piece pattern) const
inline

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

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

◆ trimmed_right_with_spaces() [2/2]

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<typename R = str_piece, typename T, size_t N = const_lit_for<K, T>::Count>
requires is_const_pattern<N>
R simstr::str_src_algs< K, StrRef, Impl, Mutable >::trimmed_right_with_spaces ( T && pattern) const
inline

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

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

◆ trimmed_with_spaces() [1/2]

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<typename R = str_piece>
R simstr::str_src_algs< K, StrRef, Impl, Mutable >::trimmed_with_spaces ( str_piece pattern) const
inline

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

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

◆ trimmed_with_spaces() [2/2]

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<typename R = str_piece, typename T, size_t N = const_lit_for<K, T>::Count>
requires is_const_pattern<N>
R simstr::str_src_algs< K, StrRef, Impl, Mutable >::trimmed_with_spaces ( T && pattern) const
inline

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

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

◆ upperred_only_ascii()

template<typename K, typename StrRef, typename Impl, bool Mutable>
template<typename R = my_type>
R simstr::str_src_algs< K, StrRef, Impl, Mutable >::upperred_only_ascii ( ) const
inline

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

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

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