simstr 1.7.3
Yet another strings library
 
Loading...
Searching...
No Matches
simstr Namespace Reference

Library namespace. More...

Namespaces

namespace  str
 Small namespace for standard string methods.
 

Classes

class  chunked_string_builder
 For constructing long dynamic strings by concatenating small pieces. More...
 
struct  convert_to_strexpr< K, const T * >
 A template specialization for converting pointers to string expressions, allowing their use in concatenation operations with string expressions. More...
 
struct  convert_to_strexpr< K, expr_hex_src< Val, All, Ucase, Ox > >
 A template specialization for converting e_hex to string expressions, allowing their use in concatenation operations with string expressions. More...
 
struct  convert_to_strexpr< K, T >
 A template specialization for converting standard strings to string expressions, allowing their use in concatenation operations with string expressions. More...
 
struct  e_ascii_lower
 Generate a string based on the original one, replacing all ASCII uppercase letters (A-Z) with lowercase ones. More...
 
struct  e_ascii_upper
 Generate a string based on the original one, replacing all ASCII lowercase letters (a-z) with uppercase ones. More...
 
struct  e_concat
 String expression concatenating the specified string expressions using the specified delimiter. More...
 
struct  e_lower
 
struct  e_subst
 String expression that substitutes the values ​​of the passed string expressions into the specified places in a string literal. More...
 
struct  e_upper
 Generates a string based on the original one, replacing all lowercase letters of the first Unicode plane with uppercase ones. More...
 
struct  e_vsubst
 String expression that substitutes the values ​​of the passed string expressions into the specified positions in the pattern string, specified at runtime. More...
 
struct  empty_expr
 An "empty" string expression. More...
 
struct  expr_choice
 Conditional selection string expression. More...
 
struct  expr_choice_one_lit
 Conditional selection string expression. More...
 
struct  expr_choice_two_lit
 Conditional selection string expression. More...
 
struct  expr_if
 Conditional selection string expression. More...
 
struct  expr_pad
 A type of string expression that returns N specified characters. More...
 
struct  expr_replace_symbols
 A type for a string expression that generates a string in which the given characters are replaced by the given strings. More...
 
struct  expr_replaced
 A string expression that generates a string replacing all occurrences of the given substring to another string. More...
 
struct  expr_replaced_e
 A string expression that generates a string replacing all occurrences of the given substring to string expression. More...
 
struct  expr_spaces
 A type of string expression that returns N specified characters. More...
 
struct  expr_stdstr
 A type for using std::basic_string and std::basic_string_view as sources in string expressions. More...
 
struct  expr_to_std_string
 Base class for converting string expressions to standard strings. More...
 
struct  expr_utf
 String expression to convert strings to different UTF types. More...
 
class  from_utf_convertible
 Base class for strings that can be converted from another character type. More...
 
class  hashStrMap
 Container for more efficient searching by string keys. More...
 
class  lstring
 The mutable, owning string class. Contains an internal buffer for text of a given size. More...
 
struct  simple_str
 The simplest immutable non-owning string class. More...
 
struct  simple_str_nt
 A class that claims to refer to a null-terminated string. More...
 
class  SplitterBase
 Class for sequentially obtaining substrings by a given delimiter. More...
 
class  sstring
 Immutable owning string class. More...
 
class  str_algs
 A class with additional constant string algorithms. More...
 
class  str_mutable
 Base class for working with mutable strings. More...
 
struct  str_src
 The simplest class of an immutable non-owning string. More...
 
class  str_src_algs
 A class with basic constant string algorithms. More...
 
struct  str_src_nt
 A class that claims to refer to a null-terminated string. More...
 
class  str_storable
 The base for the objects that own the string. More...
 
struct  strexprjoin
 Template class for concatenating two string expressions into one using operator + More...
 
struct  strexprjoin_c
 Concatenation of a reference to a string expression and the value of the string expression. More...
 

Concepts

concept  storable_str
 A type concept that can store a string.
 
concept  mutable_str
 A type concept that can modify a stored string.
 
concept  immutable_str
 A type concept that cannot modify a stored string.
 
concept  Allocatorable
 Concept of a memory management type.
 
concept  is_equal_str_type_v
 Checks whether two types are compatible string types.
 
concept  StrType
 Base concept of string object.
 
concept  StrExpr
 Concept of "String Expressions".
 
concept  StrExprForType
 The concept of a string expression compatible with a given character type.
 

Typedefs

template<typename T, typename A = allocator_hashstrmap<u8s, str_exact, T>>
using hashStrMapA = hashStrMap<u8s, T, str_exact, A>
 Type of hash dictionary for char strings, case sensitive search.
 
template<typename T, typename A = allocator_hashstrmap<u8s, str_eqlia, T>>
using hashStrMapAIA = hashStrMap<u8s, T, str_eqlia, A>
 Type of hash dictionary for char strings, case-insensitive lookup for ASCII characters.
 
template<typename T, typename A = allocator_hashstrmap<u8s, str_eqliu, T>>
using hashStrMapAIU = hashStrMap<u8s, T, str_eqliu, A>
 Hash dictionary type for char strings, case-insensitive search for Unicode characters up to 0xFFFF.
 
template<typename T, typename A = allocator_hashstrmap<ubs, str_exact, T>>
using hashStrMapB = hashStrMap<ubs, T, str_exact, A>
 Type of hash dictionary for char8_t strings, case sensitive search.
 
template<typename T, typename A = allocator_hashstrmap<ubs, str_eqlia, T>>
using hashStrMapBIA = hashStrMap<ubs, T, str_eqlia, A>
 Type of hash dictionary for char8_t strings, case-insensitive lookup for ASCII characters.
 
template<typename T, typename A = allocator_hashstrmap<ubs, str_eqliu, T>>
using hashStrMapBIU = hashStrMap<ubs, T, str_eqliu, A>
 Hash dictionary type for char8_t strings, case-insensitive search for Unicode characters up to 0xFFFF.
 
template<typename T, typename A = allocator_hashstrmap<wchar_t, str_exact, T>>
using hashStrMapW = hashStrMap<wchar_t, T, str_exact, A>
 Hash dictionary type for wchar_t strings, case sensitive search.
 
template<typename T, typename A = allocator_hashstrmap<wchar_t, str_eqlia, T>>
using hashStrMapWIA = hashStrMap<wchar_t, T, str_eqlia, A>
 Hash dictionary type for wchar_t strings, case-insensitive lookup for ASCII characters.
 
template<typename T, typename A = allocator_hashstrmap<wchar_t, str_eqliu, T>>
using hashStrMapWIU = hashStrMap<wchar_t, T, str_eqliu, A>
 Hash dictionary type for wchar_t strings, case insensitive search for Unicode characters up to 0xFFFF.
 
template<typename T, typename A = allocator_hashstrmap<u16s, str_exact, T>>
using hashStrMapU = hashStrMap<u16s, T, str_exact, A>
 Hash dictionary type for char16_t strings, case sensitive search.
 
template<typename T, typename A = allocator_hashstrmap<u16s, str_eqlia, T>>
using hashStrMapUIA = hashStrMap<u16s, T, str_eqlia, A>
 Hash dictionary type for char16_t strings, case-insensitive lookup for ASCII characters.
 
template<typename T, typename A = allocator_hashstrmap<u16s, str_eqliu, T>>
using hashStrMapUIU = hashStrMap<u16s, T, str_eqliu, A>
 Hash dictionary type for char16_t strings, case insensitive search for Unicode characters up to 0xFFFF.
 
template<typename T, typename A = allocator_hashstrmap<u32s, str_exact, T>>
using hashStrMapUU = hashStrMap<u32s, T, str_exact, A>
 Hash dictionary type for char32_t strings, case sensitive search.
 
template<typename T, typename A = allocator_hashstrmap<u32s, str_eqlia, T>>
using hashStrMapUUIA = hashStrMap<u32s, T, str_eqlia, A>
 Hash dictionary type for char32_t strings, case-insensitive lookup for ASCII characters.
 
template<typename T, typename A = allocator_hashstrmap<u32s, str_eqliu, T>>
using hashStrMapUUIU = hashStrMap<u32s, T, str_eqliu, A>
 Hash dictionary type for char32_t strings, case insensitive search for Unicode characters up to 0xFFFF.
 

Enumerations

enum  HexFlags : unsigned { Short = 1 , No0x = 2 , Lcase = 4 }
 Flags for the e_hex function. More...
 
enum class  IntConvertResult : char { Success , BadSymbolAtTail , Overflow , NotNumber }
 Enumeration with possible results of converting a string to an integer. More...
 

Functions

template<typename To, typename From>
requires (!std::is_same_v<From, To>)
expr_utf< From, To > e_utf (simple_str< From > from)
 Returns a string expression that converts a string of one character type to another type, via UTF conversion.
 
SS_CONSTEVAL simple_str_nt< u8s > operator""_ss (const u8s *ptr, size_t l)
 Operator literal in simple_str_nt.
 
SS_CONSTEVAL simple_str_nt< ubs > operator""_ss (const ubs *ptr, size_t l)
 Operator literal in simple_str_nt.
 
SS_CONSTEVAL simple_str_nt< uws > operator""_ss (const uws *ptr, size_t l)
 Operator literal in simple_str_nt.
 
SS_CONSTEVAL simple_str_nt< u16s > operator""_ss (const u16s *ptr, size_t l)
 Operator literal in simple_str_nt.
 
SS_CONSTEVAL simple_str_nt< u32s > operator""_ss (const u32s *ptr, size_t l)
 Operator literal in simple_str_nt.
 
consteval HashKey< u8s > operator""_h (const u8s *ptr, size_t l)
 Key literal operator for hashStrMap with a case-sensitive hash calculated at compile time.
 
consteval HashKeyIA< u8s > operator""_ia (const u8s *ptr, size_t l)
 Key literal operator for hashStrMap with a case-insensitive ASCII hash calculated at compile time.
 
HashKeyIU< u8s > operator""_iu (const u8s *ptr, size_t l)
 Key literal operator for hashStrMap with a simple unicode case-insensitive hash calculated at compile time.
 
consteval HashKey< ubs > operator""_h (const ubs *ptr, size_t l)
 Key literal operator for hashStrMap with a case-sensitive hash calculated at compile time.
 
consteval HashKeyIA< ubs > operator""_ia (const ubs *ptr, size_t l)
 Key literal operator for hashStrMap with a case-insensitive ASCII hash calculated at compile time.
 
HashKeyIU< ubs > operator""_iu (const ubs *ptr, size_t l)
 Key literal operator for hashStrMap with a simple unicode case-insensitive hash calculated at compile time.
 
consteval HashKey< u16s > operator""_h (const u16s *ptr, size_t l)
 Key literal operator for hashStrMap with a case-sensitive hash calculated at compile time.
 
consteval HashKeyIA< u16s > operator""_ia (const u16s *ptr, size_t l)
 Key literal operator for hashStrMap with a case-insensitive ASCII hash calculated at compile time.
 
HashKeyIU< u16s > operator""_iu (const u16s *ptr, size_t l)
 Key literal operator for hashStrMap with a simple unicode case-insensitive hash calculated at compile time.
 
consteval HashKey< u32s > operator""_h (const u32s *ptr, size_t l)
 Key literal operator for hashStrMap with a case-sensitive hash calculated at compile time.
 
consteval HashKeyIA< u32s > operator""_ia (const u32s *ptr, size_t l)
 Key literal operator for hashStrMap with a case-insensitive ASCII hash calculated at compile time.
 
HashKeyIU< u32s > operator""_iu (const u32s *ptr, size_t l)
 Key literal operator for hashStrMap with a simple unicode case-insensitive hash calculated at compile time.
 
consteval HashKey< uws > operator""_h (const uws *ptr, size_t l)
 Key literal operator for hashStrMap with a case-sensitive hash calculated at compile time.
 
consteval HashKeyIA< uws > operator""_ia (const uws *ptr, size_t l)
 Key literal operator for hashStrMap with a case-insensitive ASCII hash calculated at compile time.
 
HashKeyIU< uws > operator""_iu (const uws *ptr, size_t l)
 Key literal operator for hashStrMap with a simple unicode case-insensitive hash calculated at compile time.
 
std::ostream & operator<< (std::ostream &stream, ssa text)
 Stream output operator simple_str.
 
std::wostream & operator<< (std::wostream &stream, ssw text)
 Stream output operator simple_str.
 
std::wostream & operator<< (std::wostream &stream, simple_str< wchar_type > text)
 Stream output operator simple_str.
 
std::ostream & operator<< (std::ostream &stream, const stringa &text)
 Operator for outputting sstring to stream.
 
std::wostream & operator<< (std::wostream &stream, const stringw &text)
 Operator for outputting sstring to stream.
 
std::wostream & operator<< (std::wostream &stream, const sstring< wchar_type > &text)
 Operator for outputting sstring to stream.
 
template<size_t N, bool S, simstr::Allocatorable A>
std::ostream & operator<< (std::ostream &stream, const lstring< u8s, N, S, A > &text)
 Operator to output lstring to stream.
 
template<size_t N, bool S, simstr::Allocatorable A>
std::wostream & operator<< (std::wostream &stream, const lstring< uws, N, S, A > &text)
 Operator to output lstring to stream.
 
template<size_t N, bool S, simstr::Allocatorable A>
std::wostream & operator<< (std::wostream &stream, const lstring< wchar_type, N, S, A > &text)
 Operator to output lstring to stream.
 
template<StrExpr A, StrExprForType< typename A::symb_type > B>
constexpr strexprjoin< A, B > operator+ (const A &a, const B &b)
 An addition operator for two arbitrary string expressions of the same character type.
 
template<StrExpr A, convertible_to_strexpr< typename A::symb_type > B>
constexpr strexprjoin_c< A, convert_to_strexpr_t< typename A::symb_type, B >, true > operator+ (const A &a, B &&b)
 Addition operator for string expressions and types for which there is a conversion to string expressions.
 
template<StrExpr A, convertible_to_strexpr< typename A::symb_type > B>
constexpr strexprjoin_c< A, convert_to_strexpr_t< typename A::symb_type, B >, false > operator+ (B &&b, const A &a)
 Addition operator for types for which there is a conversion to string expressions and string expressions.
 
template<typename K, StrExprForType< K > A>
constexpr strexprjoin_c< A, expr_char< K > > operator+ (const A &a, K s)
 Addition operator of a string expression and one character.
 
template<typename K>
constexpr expr_char< K > e_char (K s)
 Generates a string of 1 given character.
 
template<typename T, size_t N = const_lit<T>::Count>
constexpr expr_literal< typename const_lit< T >::symb_type, static_cast< size_t >(N - 1)> e_t (T &&s)
 Converts a string literal to a string expression.
 
template<StrExpr A, typename T, typename P = typename const_lit<T>::symb_type, size_t N = const_lit<T>::Count>
requires is_equal_str_type_v<typename A::symb_type, P>
constexpr expr_literal_join< false, P,(N - 1), A > operator+ (const A &a, T &&s)
 The addition operator for a string expression and a string literal of the same character type.
 
template<StrExpr A, typename T, typename P = typename const_lit<T>::symb_type, size_t N = const_lit<T>::Count>
requires is_equal_str_type_v<typename A::symb_type, P>
constexpr expr_literal_join< true, P,(N - 1), A > operator+ (T &&s, const A &a)
 The addition operator for a string literal of the same character type and string expression.
 
template<size_t N>
constexpr expr_spaces< u8s, N > e_spca ()
 Generates a string of N char spaces.
 
template<size_t N>
constexpr expr_spaces< uws, N > e_spcw ()
 Generates a string of N wchar_t spaces.
 
template<typename K>
constexpr expr_pad< K > e_c (size_t l, K s)
 Generates a string of l characters s of type K.
 
template<typename T, typename K = const_lit<T>::symb_type, size_t M = const_lit<T>::Count>
requires (M > 0)
constexpr expr_repeat_lit< K, M - 1 > e_repeat (T &&s, size_t l)
 Generate a string from l string constants s of type K.
 
template<StrExpr A>
constexpr expr_repeat_expr< A > e_repeat (const A &s, size_t l)
 Generate a string from l string expressions s of type K.
 
template<StrExpr A, StrExprForType< typename A::symb_type > B>
constexpr expr_choice< A, B > e_choice (bool c, const A &a, const B &b)
 Create a conditional string expression expr_choice.
 
template<StrExpr A, typename T, size_t N = const_lit_for<typename A::symb_type, T>::Count>
constexpr expr_choice_one_lit< typename const_lit< T >::symb_type, A, N - 1, true > e_choice (bool c, const A &a, T &&str)
 Overload e_choice when the third argument is a string literal.
 
template<StrExpr A, typename T, size_t N = const_lit_for<typename A::symb_type, T>::Count>
constexpr expr_choice_one_lit< typename const_lit< T >::symb_type, A, N - 1, false > e_choice (bool c, T &&str, const A &a)
 Overload e_choice when the second argument is a string literal.
 
template<typename T, typename L, typename K = typename const_lit<T>::symb_type, typename P = typename const_lit<L>::symb_type, size_t N = const_lit<T>::Count, size_t M = const_lit_for<typename const_lit<T>::symb_type, L>::Count>
requires is_equal_str_type_v<K, P>
constexpr expr_choice_two_lit< K, N -1, P, M - 1 > e_choice (bool c, T &&str_a, L &&str_b)
 Overload e_choice when the second and third arguments are string literals.
 
template<StrExpr A>
constexpr expr_if< A > e_if (bool c, const A &a)
 Creating a conditional string expression expr_if.
 
template<typename T, size_t N = const_lit<T>::Count>
constexpr auto e_if (bool c, T &&str)
 Overload e_if when the second argument is a string literal.
 
template<typename K, FromIntNumber T>
constexpr expr_num< K, T > e_num (T t)
 Convert an integer to a string expression.
 
template<unsigned R, auto fp = f::df, FromIntNumber T>
requires good_int_flags<flags_checker<R, T, decltype(fp)>, false>
constexpr auto e_int (T v)
 Creates an object that is converted to a string expression that generates a string representation of a number.
 
template<unsigned R, auto fp = f::df, FromIntNumber T>
requires good_int_flags<flags_checker<R, T, decltype(fp)>, true>
constexpr auto e_int (T v, unsigned w)
 Same as e_int(num), only the field width is additionally specified.
 
template<typename K>
requires is_one_of_char_v<K>
constexpr expr_real< K > e_num (double t)
 Convert a double number to a string expression.
 
template<unsigned Flags = 0, FromIntNumber T>
constexpr auto e_hex (T v)
 Creates an object that can be converted to a string expression that generates a hexadecimal representation of a number.
 
template<StrExpr A, typename K = typename A::symb_type>
expr_fill< K, A, true > e_fill_left (const A &a, size_t width, K symbol=K(' '))
 Creates an expression that expands the specified string expression to the specified length given character to the left.
 
template<StrExpr A, typename K = typename A::symb_type>
expr_fill< K, A, false > e_fill_right (const A &a, size_t width, K symbol=K(' '))
 Creates an expression that expands the specified string expression to the specified length given character to the right.
 
template<bool tail = false, bool skip_empty = false, typename L, typename K = typename const_lit<L>::symb_type, size_t I = const_lit<L>::Count, typename T>
constexpr auto e_join (const T &s, L &&d)
 Get a string expression concatenating the strings in the container into a single string with the given delimiter.limiter.limiter.
 
template<char... Chars>
SS_CONSTEVAL auto operator""_fmt ()
 Creates a set of radix and flags that can be applied to integers numbers to set formatting parameters using the division operator: num / 0xFormatOptions_fmt. Formatting parameters are set as follows: first comes 0x, then the radix written in decimal form. Next may be symbols indicating various flags:
 
SS_CONSTEVAL str_src_nt< u8s > operator""_ss (const u8s *ptr, size_t l)
 Operator literal in str_src.
 
SS_CONSTEVAL str_src_nt< ubs > operator""_ss (const ubs *ptr, size_t l)
 Operator literal in str_src.
 
SS_CONSTEVAL str_src_nt< uws > operator""_ss (const uws *ptr, size_t l)
 Operator literal in str_src.
 
SS_CONSTEVAL str_src_nt< u16s > operator""_ss (const u16s *ptr, size_t l)
 Operator literal in str_src.
 
SS_CONSTEVAL str_src_nt< u32s > operator""_ss (const u32s *ptr, size_t l)
 Operator literal in str_src.
 
template<StrSource A, typename K = symb_type_from_src_t<A>, typename T, size_t N = const_lit_for<K, T>::Count, typename X, size_t L = const_lit_for<K, X>::Count>
requires (N > 1)
constexpr auto e_repl (A &&w, T &&p, X &&r)
 Get a string expression that generates a string with all occurrences of a given substring replaced.
 
template<StrSource A, typename K = symb_type_from_src_t<A>, typename T, typename X>
requires (std::is_constructible_v<str_src<K>, T> && std::is_constructible_v<str_src<K>, X> && (!is_const_lit_v<T> || !is_const_lit_v<X>))
constexpr auto e_repl (A &&w, T &&p, X &&r)
 Get a string expression that generates a string with all occurrences of a given substring replaced.
 
template<StrSource A, typename K = symb_type_from_src_t<A>, typename T, StrExprForType< K > E>
requires std::is_constructible_v<str_src<K>, T>
constexpr auto e_repl (A &&w, T &&p, const E &expr)
 Get a string expression that generates a string with all occurrences of a given substring replaced.
 
template<bool UseVector = false, StrSource A, typename K = symb_type_from_src_t<A>, typename ... Repl>
requires (sizeof...(Repl) % 2 == 0)
auto e_repl_const_symbols (A &&src, Repl &&... other)
 Returns a string expression that generates a string containing the given characters replaced with given substrings.
 

Variables

constexpr empty_expr< u8s > eea {}
 Empty string expression of type char.
 
constexpr empty_expr< u8s > eeb {}
 Empty string expression of type char8_t.
 
constexpr empty_expr< uws > eew {}
 Empty string expression of type wchar_t.
 
constexpr empty_expr< u16s > eeu {}
 Empty string expression of type char16_t.
 
constexpr empty_expr< u32s > eeuu {}
 Empty string expression of type char32_t.
 

Detailed Description

Library namespace.

Enumeration Type Documentation

◆ IntConvertResult

enum class simstr::IntConvertResult : char
strong

Enumeration with possible results of converting a string to an integer.

Enumerator
Success 

Успешно

BadSymbolAtTail 

Число закончилось не числовым символом

Overflow 

Переполнение, число не помещается в заданный тип

NotNumber 

Вообще не число

Function Documentation

◆ e_utf()

template<typename To, typename From>
requires (!std::is_same_v<From, To>)
expr_utf< From, To > simstr::e_utf ( simple_str< From > from)

Returns a string expression that converts a string of one character type to another type, via UTF conversion.

Template Parameters
To- the type of string to convert to.
From- the type of string to convert from. Derived from the argument.
Parameters
from- the string from which to convert.

◆ operator""_h() [1/5]

HashKey< u16s > simstr::literals::operator""_h ( const u16s * ptr,
size_t l )
consteval

Key literal operator for hashStrMap with a case-sensitive hash calculated at compile time.

Parameters
ptr- pointer to a string.
l- string length.
Returns
StoreType.

◆ operator""_h() [2/5]

HashKey< u32s > simstr::literals::operator""_h ( const u32s * ptr,
size_t l )
consteval

Key literal operator for hashStrMap with a case-sensitive hash calculated at compile time.

Parameters
ptr- pointer to a string.
l- string length.
Returns
StoreType.

◆ operator""_h() [3/5]

HashKey< u8s > simstr::literals::operator""_h ( const u8s * ptr,
size_t l )
consteval

Key literal operator for hashStrMap with a case-sensitive hash calculated at compile time.

Parameters
ptr- pointer to a string.
l- string length.
Returns
StoreType.

◆ operator""_h() [4/5]

HashKey< ubs > simstr::literals::operator""_h ( const ubs * ptr,
size_t l )
consteval

Key literal operator for hashStrMap with a case-sensitive hash calculated at compile time.

Parameters
ptr- pointer to a string.
l- string length.
Returns
StoreType.

◆ operator""_h() [5/5]

HashKey< uws > simstr::literals::operator""_h ( const uws * ptr,
size_t l )
consteval

Key literal operator for hashStrMap with a case-sensitive hash calculated at compile time.

Parameters
ptr- pointer to a string.
l- string length.
Returns
StoreType.

◆ operator""_ia() [1/5]

HashKeyIA< u16s > simstr::literals::operator""_ia ( const u16s * ptr,
size_t l )
consteval

Key literal operator for hashStrMap with a case-insensitive ASCII hash calculated at compile time.

Parameters
ptr- pointer to a string.
l- string length.
Returns
StoreType.

◆ operator""_ia() [2/5]

HashKeyIA< u32s > simstr::literals::operator""_ia ( const u32s * ptr,
size_t l )
consteval

Key literal operator for hashStrMap with a case-insensitive ASCII hash calculated at compile time.

Parameters
ptr- pointer to a string.
l- string length.
Returns
StoreType.

◆ operator""_ia() [3/5]

HashKeyIA< u8s > simstr::literals::operator""_ia ( const u8s * ptr,
size_t l )
consteval

Key literal operator for hashStrMap with a case-insensitive ASCII hash calculated at compile time.

Parameters
ptr- pointer to a string.
l- string length.
Returns
StoreType.

◆ operator""_ia() [4/5]

HashKeyIA< ubs > simstr::literals::operator""_ia ( const ubs * ptr,
size_t l )
consteval

Key literal operator for hashStrMap with a case-insensitive ASCII hash calculated at compile time.

Parameters
ptr- pointer to a string.
l- string length.
Returns
StoreType.

◆ operator""_ia() [5/5]

HashKeyIA< uws > simstr::literals::operator""_ia ( const uws * ptr,
size_t l )
consteval

Key literal operator for hashStrMap with a case-insensitive ASCII hash calculated at compile time.

Parameters
ptr- pointer to a string.
l- string length.
Returns
StoreType.

◆ operator""_iu() [1/5]

HashKeyIU< u16s > simstr::literals::operator""_iu ( const u16s * ptr,
size_t l )
inline

Key literal operator for hashStrMap with a simple unicode case-insensitive hash calculated at compile time.

Parameters
ptr- pointer to a string.
l- string length.
Returns
StoreType.

◆ operator""_iu() [2/5]

HashKeyIU< u32s > simstr::literals::operator""_iu ( const u32s * ptr,
size_t l )
inline

Key literal operator for hashStrMap with a simple unicode case-insensitive hash calculated at compile time.

Parameters
ptr- pointer to a string.
l- string length.
Returns
StoreType.

◆ operator""_iu() [3/5]

HashKeyIU< u8s > simstr::literals::operator""_iu ( const u8s * ptr,
size_t l )
inline

Key literal operator for hashStrMap with a simple unicode case-insensitive hash calculated at compile time.

Parameters
ptr- pointer to a string.
l- string length.
Returns
StoreType.

◆ operator""_iu() [4/5]

HashKeyIU< ubs > simstr::literals::operator""_iu ( const ubs * ptr,
size_t l )
inline

Key literal operator for hashStrMap with a simple unicode case-insensitive hash calculated at compile time.

Parameters
ptr- pointer to a string.
l- string length.
Returns
StoreType.

◆ operator""_iu() [5/5]

HashKeyIU< uws > simstr::literals::operator""_iu ( const uws * ptr,
size_t l )
inline

Key literal operator for hashStrMap with a simple unicode case-insensitive hash calculated at compile time.

Parameters
ptr- pointer to a string.
l- string length.
Returns
StoreType.

◆ operator""_ss() [1/10]

SS_CONSTEVAL simple_str_nt< u16s > simstr::literals::operator""_ss ( const u16s * ptr,
size_t l )

Operator literal in simple_str_nt.

Parameters
ptr- pointer to a string.
l- string length.
Returns
simple_str_nt.

◆ operator""_ss() [2/10]

SS_CONSTEVAL str_src_nt< u16s > simstr::literals::operator""_ss ( const u16s * ptr,
size_t l )

Operator literal in str_src.

Parameters
ptr- pointer to a string.
l- string length.
Returns
str_src.

◆ operator""_ss() [3/10]

SS_CONSTEVAL simple_str_nt< u32s > simstr::literals::operator""_ss ( const u32s * ptr,
size_t l )

Operator literal in simple_str_nt.

Parameters
ptr- pointer to a string.
l- string length.
Returns
simple_str_nt.

◆ operator""_ss() [4/10]

SS_CONSTEVAL str_src_nt< u32s > simstr::literals::operator""_ss ( const u32s * ptr,
size_t l )

Operator literal in str_src.

Parameters
ptr- pointer to a string.
l- string length.
Returns
str_src.

◆ operator""_ss() [5/10]

SS_CONSTEVAL simple_str_nt< u8s > simstr::literals::operator""_ss ( const u8s * ptr,
size_t l )

Operator literal in simple_str_nt.

Parameters
ptr- pointer to a string.
l- string length.
Returns
simple_str_nt.

◆ operator""_ss() [6/10]

SS_CONSTEVAL str_src_nt< u8s > simstr::literals::operator""_ss ( const u8s * ptr,
size_t l )

Operator literal in str_src.

Parameters
ptr- pointer to a string.
l- string length.
Returns
str_src.

◆ operator""_ss() [7/10]

SS_CONSTEVAL simple_str_nt< ubs > simstr::literals::operator""_ss ( const ubs * ptr,
size_t l )

Operator literal in simple_str_nt.

Parameters
ptr- pointer to a string.
l- string length.
Returns
simple_str_nt.

◆ operator""_ss() [8/10]

SS_CONSTEVAL str_src_nt< ubs > simstr::literals::operator""_ss ( const ubs * ptr,
size_t l )

Operator literal in str_src.

Parameters
ptr- pointer to a string.
l- string length.
Returns
str_src.

◆ operator""_ss() [9/10]

SS_CONSTEVAL simple_str_nt< uws > simstr::literals::operator""_ss ( const uws * ptr,
size_t l )

Operator literal in simple_str_nt.

Parameters
ptr- pointer to a string.
l- string length.
Returns
simple_str_nt.

◆ operator""_ss() [10/10]

SS_CONSTEVAL str_src_nt< uws > simstr::literals::operator""_ss ( const uws * ptr,
size_t l )

Operator literal in str_src.

Parameters
ptr- pointer to a string.
l- string length.
Returns
str_src.

◆ operator+() [1/2]

template<StrExpr A, convertible_to_strexpr< typename A::symb_type > B>
strexprjoin_c< A, convert_to_strexpr_t< typename A::symb_type, B >, false > simstr::operator+ ( B && b,
const A & a )
inlineconstexpr

Addition operator for types for which there is a conversion to string expressions and string expressions.

Template Parameters
A- the type of the string expression.
B- the type of the addend.
Parameters
b- the addend.
a- the string expression.
Returns
constexpr strexprjoin_c<A, convert_to_strexpr_t<typename A::symb_type, B>, false>

◆ operator+() [2/2]

template<StrExpr A, convertible_to_strexpr< typename A::symb_type > B>
strexprjoin_c< A, convert_to_strexpr_t< typename A::symb_type, B >, true > simstr::operator+ ( const A & a,
B && b )
inlineconstexpr

Addition operator for string expressions and types for which there is a conversion to string expressions.

Template Parameters
A- the type of the string expression.
B- the type of the addend.
Parameters
a- the string expression.
b- the addend.
Returns
constexpr strexprjoin_c<A, convert_to_strexpr_t<typename A::symb_type, B>, true>

◆ operator<<() [1/9]

template<size_t N, bool S, simstr::Allocatorable A>
std::ostream & simstr::operator<< ( std::ostream & stream,
const lstring< u8s, N, S, A > & text )
inline

Operator to output lstring to stream.

Parameters
stream- output stream.
text- text.
Returns
std::ostream&.

◆ operator<<() [2/9]

std::ostream & simstr::operator<< ( std::ostream & stream,
const stringa & text )
inline

Operator for outputting sstring to stream.

Parameters
stream- output stream.
text- text.
Returns
std::ostream&.

◆ operator<<() [3/9]

std::ostream & simstr::operator<< ( std::ostream & stream,
ssa text )
inline

Stream output operator simple_str.

Parameters
stream- output stream.
text- text.
Returns
std::ostream&.

◆ operator<<() [4/9]

template<size_t N, bool S, simstr::Allocatorable A>
std::wostream & simstr::operator<< ( std::wostream & stream,
const lstring< uws, N, S, A > & text )
inline

Operator to output lstring to stream.

Parameters
stream- output stream.
text- text.
Returns
std::ostream&.

◆ operator<<() [5/9]

template<size_t N, bool S, simstr::Allocatorable A>
std::wostream & simstr::operator<< ( std::wostream & stream,
const lstring< wchar_type, N, S, A > & text )
inline

Operator to output lstring to stream.

Parameters
stream- output stream.
text- text.
Returns
std::ostream&.

◆ operator<<() [6/9]

std::wostream & simstr::operator<< ( std::wostream & stream,
const sstring< wchar_type > & text )
inline

Operator for outputting sstring to stream.

Parameters
stream- output stream.
text- text.
Returns
std::ostream&.

◆ operator<<() [7/9]

std::wostream & simstr::operator<< ( std::wostream & stream,
const stringw & text )
inline

Operator for outputting sstring to stream.

Parameters
stream- output stream.
text- text.
Returns
std::ostream&.

◆ operator<<() [8/9]

std::wostream & simstr::operator<< ( std::wostream & stream,
simple_str< wchar_type > text )
inline

Stream output operator simple_str.

Parameters
stream- output stream.
text- text.
Returns
std::ostream&.

◆ operator<<() [9/9]

std::wostream & simstr::operator<< ( std::wostream & stream,
ssw text )
inline

Stream output operator simple_str.

Parameters
stream- output stream.
text- text.
Returns
std::ostream&.