|
acme
Foundational cross-platform layer of the ca2 framework
|
Public Types | |
| using | BASE_RANGE = ::const_string_range < ITERATOR_TYPE > |
| using | this_iterator = typename BASE_RANGE::this_iterator |
| using | iterator = typename BASE_RANGE::iterator |
| using | const_iterator = typename BASE_RANGE::const_iterator |
| using | PRIMITIVE_STRING_TAG = PRIMITIVE_STRING_TAG_TYPE |
| using | ITEM_POINTER = get_type_item_pointer< this_iterator > |
| using | ITEM = ::const_string_range < ITERATOR_TYPE >::ITEM |
| using | CHARACTER = ::const_string_range < ITERATOR_TYPE >::CHARACTER |
| using | BASE_DATA = BASE_RANGE::BASE_DATA |
| using | SCOPED_STRING = scoped_string_base < this_iterator > |
| typedef character_count | size_type |
| Public Types inherited from const_string_range< ITERATOR_TYPE > | |
| using | BASE_RANGE = ::character_range<ITERATOR_TYPE> |
| using | RAW_CHARACTER_RANGE = typename BASE_RANGE::RAW_CHARACTER_RANGE |
| using | THIS_RANGE = ::const_string_range<ITERATOR_TYPE> |
| using | STRING_RANGE = ::string_range<ITERATOR_TYPE> |
| using | ITEM_POINTER = get_type_item_pointer<ITERATOR_TYPE> |
| using | ITEM = non_const<dereference<ITEM_POINTER> > |
| using | CHARACTER = ITEM |
| using | BASE_DATA = BASE_RANGE::BASE_DATA |
| using | this_iterator = typename BASE_RANGE::this_iterator |
| using | iterator = typename BASE_RANGE::iterator |
| using | const_iterator = typename BASE_RANGE::const_iterator |
| using | THIS_RAW_RANGE = typename BASE_RANGE::THIS_RAW_RANGE |
| using | RAW_RANGE = typename BASE_RANGE::RAW_RANGE |
| using | CONST_RAW_RANGE = typename BASE_RANGE::CONST_RAW_RANGE |
| using | SCOPED_STRING = scoped_string_base<ITERATOR_TYPE> |
| using | ARG_ITEM = typename BASE_RANGE::ARG_ITEM |
| using | STRING = string_base < ITERATOR_TYPE > |
| using | STRING_ARRAY = ::string_base_array < STRING, STRING, e_type_string_array > |
| Public Types inherited from character_range< ITERATOR_TYPE > | |
| using | THIS_CHARACTER_RANGE = character_range < ITERATOR_TYPE > |
| using | RAW_CHARACTER_RANGE = THIS_CHARACTER_RANGE |
| using | BASE_RANGE = ::character_range < ITERATOR_TYPE > |
| using | BASE_RAW_RANGE = ::block_range < ITERATOR_TYPE > |
| using | _BASE_RAW_RANGE = ::block_range < ITERATOR_TYPE > |
| using | this_iterator = typename _BASE_RAW_RANGE::this_iterator |
| using | CHARACTER = typename BASE_RANGE::ITEM |
| using | BASE_DATA = ::base_data < CHARACTER > |
| Public Types inherited from block_range< ITERATOR_TYPE > | |
| using | this_iterator = ITERATOR_TYPE |
| using | iterator = get_iterator<ITERATOR_TYPE> |
| using | const_iterator = get_const_iterator<iterator> |
| using | THIS_RAW_RANGE = ::range<ITERATOR_TYPE> |
| using | RAW_RANGE = ::range<iterator> |
| using | CONST_RAW_RANGE = ::range<const_iterator> |
| using | _BASE_RAW_RANGE = ::range<ITERATOR_TYPE> |
| using | THIS_RANGE = ::block_range<ITERATOR_TYPE> |
| using | RANGE = ::block_range<iterator> |
| using | CONST_RANGE = ::block_range<const_iterator> |
| using | ITEM_POINTER = get_type_item_pointer<iterator> |
| using | THIS_ITEM = get_iterator_item<this_iterator> |
| using | ITEM = non_const<THIS_ITEM> |
| using | CONST_ITEM = add_const<THIS_ITEM> |
| using | ARG_ITEM = argument_of < ITEM > |
| Public Types inherited from range< ITERATOR_TYPE > | |
| using | this_iterator = ITERATOR_TYPE |
| using | iterator = get_iterator<ITERATOR_TYPE> |
| using | const_iterator = get_const_iterator<iterator> |
| using | THIS_RAW_RANGE = ::range<ITERATOR_TYPE> |
| using | RAW_RANGE = ::range<iterator> |
| using | CONST_RAW_RANGE = ::range<const_iterator> |
| using | THIS_RANGE = ::range<ITERATOR_TYPE> |
| using | RANGE = ::range<iterator> |
| using | CONST_RANGE = ::range<const_iterator> |
| using | ITEM_POINTER = get_type_item_pointer<iterator> |
| using | THIS_ITEM = get_iterator_item<this_iterator> |
| using | ITEM = non_const<THIS_ITEM> |
| using | CONST_ITEM = add_const<THIS_ITEM> |
| using | ARG_ITEM = argument_of < ITEM > |
Public Member Functions | |
| string_base (no_initialize_t) | |
| string_base (nullptr_t) | |
| template<typed_character_pointer< typename scoped_string_base< ITERATOR_TYPE >::CHARACTER > CHARACTER_POINTER> | |
| string_base (CHARACTER_POINTER start, CHARACTER_POINTER end, enum_range erange) | |
| template<other_character_pointer< typename scoped_string_base< ITERATOR_TYPE >::CHARACTER > OTHER_CHARACTER_POINTER> | |
| string_base (OTHER_CHARACTER_POINTER start, OTHER_CHARACTER_POINTER end, enum_range erange=e_range_none) | |
| string_base (const string_base &str) | |
| template<prototype_std_string STDSTRING> | |
| string_base (const STDSTRING &stdstring) | |
|
template<typename RANGE> requires (::std::is_base_of_v < ::character_range < const typename string_base < ITERATOR_TYPE >::CHARACTER* >, RANGE > && ! (::std::is_base_of_v < string_base < ITERATOR_TYPE >, RANGE > || ::std::is_same_v < string_base < ITERATOR_TYPE >, RANGE >)) | |
| string_base (const RANGE &str) | |
|
template<typename RANGE, typename RANGE2> requires ::std::is_base_of_v < ::character_range < const typename string_base < ITERATOR_TYPE >::CHARACTER* >, RANGE > && ::std::is_base_of_v < ::character_range < const typename string_base < ITERATOR_TYPE >::CHARACTER* >, RANGE2 > | |
| string_base (const RANGE &range1, const RANGE2 &range2) | |
|
template<typename OTHER_CHARACTER> requires other_primitive_character < OTHER_CHARACTER, CHARACTER > | |
| string_base (const ::character_range< const OTHER_CHARACTER * > &range) | |
| string_base (string_base &&str) | |
| string_base (const ::c::string &cstring) | |
| template<prototype_block BLOCK> | |
| string_base (const BLOCK &block) | |
| template<character_pointer CHARACTER_POINTER> | |
| string_base (CHARACTER_POINTER start, character_count length) | |
| template<character_pointer CHARACTER_POINTER> | |
| string_base (CHARACTER_POINTER start, CHARACTER_POINTER end) | |
| template<character_pointer CHARACTER_POINTER> | |
| string_base (CHARACTER_POINTER s1, CHARACTER_POINTER e1, CHARACTER_POINTER s2, CHARACTER_POINTER e2) | |
| template<character_pointer CHARACTER_POINTER> | |
| string_base (CHARACTER_POINTER start) | |
| template<prototype_character CHARACTER2> | |
| string_base (const CHARACTER2 *start, character_count length, enum_range erange) | |
| template<prototype_character CHARACTER2, character_count sizeMaximumLength> | |
| string_base (const inline_string< CHARACTER2, sizeMaximumLength > &inlinestring) | |
| string_base (const_iterator begin, const_iterator end) | |
|
template<typename OTHER_CHARACTER> requires other_primitive_character < OTHER_CHARACTER, CHARACTER > | |
| string_base (OTHER_CHARACTER chSrc, character_count repeat=1) | |
| string_base (CHARACTER chSrc, character_count repeat=1) | |
| string_base (const ::atom &atom) | |
| string_base (const ::payload &payload) | |
| string_base (const ::property &property) | |
| void | destroy () |
| const ::block | as_block () const |
| void | default_construct () |
| template<typed_character_pointer< typename scoped_string_base< ITERATOR_TYPE >::CHARACTER > CHARACTER_POINTER> | |
| void | construct_from_a_range (CHARACTER_POINTER start, CHARACTER_POINTER end, enum_range erange=e_range_none, BASE_DATA *pbasedata=nullptr) |
| template<other_character_pointer< typename scoped_string_base< ITERATOR_TYPE >::CHARACTER > OTHER_CHARACTER_POINTER> | |
| void | construct_from_a_range (OTHER_CHARACTER_POINTER start, OTHER_CHARACTER_POINTER end, enum_range erange=e_range_none) |
| void | construct_from_string (const string_base &str) |
| template<prototype_character_range RANGE> | |
| void | construct_from_a_range (const RANGE &range) |
| void | construct2 (const ::character_range< const CHARACTER * > &range) |
| void | construct_from_range (ITERATOR_TYPE pSrc, character_count length) |
|
template<typename OTHER_CHARACTER_POINTER> requires other_character_pointer < OTHER_CHARACTER_POINTER, ITERATOR_TYPE > | |
| void | construct_from_range (OTHER_CHARACTER_POINTER pSrc, character_count length) |
|
template<typename OTHER_CHARACTER> requires (other_primitive_character < OTHER_CHARACTER, CHARACTER >) | |
| void | construct20 (const OTHER_CHARACTER *psz, character_count length, enum_range erange) |
| template<typename RANGE1, typename RANGE2> | |
| void | construct_from_two_ranges_concatenation (const RANGE1 &range1, const RANGE2 &range2) |
| template<prototype_character CHARACTER2> | |
| character_count | start_count_length (character_count &start, character_count &count, const CHARACTER2 *pszSource) |
| const string_base & | to_string () const |
| const CHARACTER * | c_str () const |
| const CHARACTER * | c_str_for_printf () const |
| this_iterator & | begin (this_iterator begin) |
| this_iterator & | end (this_iterator end) |
| bool | contains_erase (const SCOPED_STRING &scopedstr) |
| string_base | to_string_base () const |
| const BASE_RANGE & | to_string_base () |
| bool | operator== (const string_base &str) const |
| ::std::strong_ordering | operator<=> (const string_base &str) const |
| string_base & | operator= (const string_base &str) |
|
template<typename RANGE> requires (::std::is_base_of_v < ::character_range < const typename string_base < ITERATOR_TYPE >::CHARACTER* >, RANGE > && ! (::std::is_base_of_v < string_base < ITERATOR_TYPE >, RANGE > || ::std::is_same_v < string_base < ITERATOR_TYPE >, RANGE >)) | |
| string_base & | operator= (const RANGE &str) |
| template<prototype_character_range SOME_RANGE> | |
| string_base & | operator= (SOME_RANGE &&range) |
| string_base & | operator+= (const SCOPED_STRING &scopedstr) |
| template<prototype_character CHARACTER> | |
| string_base & | operator+= (CHARACTER character) |
| string_base & | surround (const SCOPED_STRING &scopedstr) |
| string_base & | surround (const SCOPED_STRING &scopedstrLeft, const SCOPED_STRING &scopedstrRight) |
| string_base & | f64_quote (bool bEscape=false) |
| string_base & | single_quote (bool bEscape=false) |
| ::character_count | size_with_null_terminator () const |
| ::character_count | size_in_bytes_with_null_terminator () const |
| const ::block | block_with_null_terminator () const |
|
template<typename SAME_CHARACTER_RANGE> requires (typed_character_range<SAME_CHARACTER_RANGE, CHARACTER>) | |
| string_base & | assign_range (const SAME_CHARACTER_RANGE &range) |
|
template<typename SAME_CHARACTER_RANGE> requires (typed_character_range<SAME_CHARACTER_RANGE, CHARACTER>) | |
| string_base & | transfer_range (SAME_CHARACTER_RANGE &&range) |
|
template<typename OTHER_CHARACTER_RANGE> requires (other_character_range<OTHER_CHARACTER_RANGE, CHARACTER>) | |
| string_base & | assign_range (const OTHER_CHARACTER_RANGE &range) |
|
template<typename OTHER_CHARACTER_RANGE> requires (other_character_range<OTHER_CHARACTER_RANGE, CHARACTER>) | |
| string_base & | transfer_range (OTHER_CHARACTER_RANGE &&range) |
| template<prototype_block BLOCK> | |
| string_base & | assign (const BLOCK &block) |
| string_base & | assign (const_iterator start) |
| string_base & | assign (const_iterator start, const_iterator end) |
| template<prototype_character CHARACTER2> | |
| string_base & | assign (const CHARACTER2 *start, const CHARACTER2 *end) |
| template<prototype_character CHARACTER2> | |
| string_base & | assign (const CHARACTER2 *pszSrc, character_count length) |
| template<prototype_character CHARACTER2> | |
| string_base & | assign (const CHARACTER2 *pszSrc) |
|
template<prototype_character SAME_SIZE_CHARACTER> requires (sizeof(SAME_SIZE_CHARACTER) == sizeof(CHARACTER)) | |
| string_base & | _assign (const SAME_SIZE_CHARACTER *pszSrc, character_count length) |
|
template<prototype_character OTHER_SIZE_CHARACTER> requires (sizeof(OTHER_SIZE_CHARACTER) != sizeof(CHARACTER)) | |
| string_base & | _assign (const OTHER_SIZE_CHARACTER *pszSrc, character_count length) |
| template<prototype_character CHARACTER2> | |
| string_base & | assign (CHARACTER2 chSrc, character_count repeat=1) |
| string_base & | append (character_count length, CHARACTER ch) |
| template<prototype_character CHARACTER2> | |
| string_base & | append_character_array (const CHARACTER2 *psz, character_count length) |
| string_base & | append_character (::wd32_character wch) |
| string_base & | append_character (::ansi_character ch) |
| string_base & | append_character (::wd16_character wch) |
| string_base & | append (const ::character_range< ITERATOR_TYPE > &range) |
|
template<typename OTHER_CHARACTER> requires other_primitive_character < OTHER_CHARACTER, CHARACTER > | |
| string_base & | append (const ::character_range< const OTHER_CHARACTER * > &range) |
| string_base & | append (ITERATOR_TYPE psz) |
|
template<typename OTHER_CHARACTER> requires other_primitive_character < OTHER_CHARACTER, CHARACTER > | |
| string_base & | append (const OTHER_CHARACTER *psz) |
| string_base & | append (const CHARACTER *psz, character_count size) |
|
template<typename OTHER_CHARACTER> requires other_primitive_character < OTHER_CHARACTER, CHARACTER > | |
| string_base & | append (const OTHER_CHARACTER *psz, character_count size) |
| string_base< ITERATOR_TYPE > & | _append (const CHARACTER *pszSrc, character_count count) |
|
template<typename OTHER_CHARACTER> requires other_primitive_character < OTHER_CHARACTER, CHARACTER > | |
| string_base< ITERATOR_TYPE > & | _append (const OTHER_CHARACTER *pszSrc, character_count count) |
| string_base & | append (const ::atom &atom) |
| string_base & | append (const ::payload &payload) |
| string_base & | append (const ::property &property) |
| string_base & | concatenate_with_separator (const SCOPED_STRING &scopedstrSeparator, const SCOPED_STRING &scopedstr) |
| void | empty () |
| auto_string_buffer< ITERATOR_TYPE > | auto_release_buffer (character_count characterCount=-1) |
| template<bool t_bPreserve = false> | |
| CHARACTER * | get_buffer (character_count characterCount=-1) |
| mutable_string_range< CHARACTER * > | get_range_buffer (character_count characterCount) |
| void | release_range_buffer (const mutable_string_range< CHARACTER * > &range) |
| void | get_string (CHARACTER *psz) const noexcept |
| bool | if_empty_set_to (const string_base &str) |
| string_base & | release_buffer (character_count nNewLength=-1) |
| this_iterator | truncate_on_find_character (CHARACTER ch) |
| this_iterator & | truncate (this_iterator p) |
| template<prototype_integral INTEGRAL> | |
| this_iterator & | truncate (INTEGRAL count) |
| template<prototype_integral INTEGRAL> | |
| this_iterator & | rear_truncate (INTEGRAL count) |
| template<prototype_integral INTEGRAL> | |
| string_base | truncated (INTEGRAL count) const |
| this_iterator & | erase_beginning (this_iterator p) |
| void | set_at (character_count iChar, CHARACTER ch) |
| template<bool t_bPreserve> | |
| CHARACTER * | create_string (character_count character_count) |
| draft: all allocation, release and assignment done | |
| template<bool t_bPreserve> | |
| void | defer_set_size (character_count characterCount) |
| const SCOPED_STRING & | if_empty (const SCOPED_STRING &scopedstr) const |
| bool | set_if_empty (const SCOPED_STRING &scopedstr) |
| void | add (CHARACTER ch) |
| void | reserve (character_count res_arg=0) |
| string_base & | erase_end (character_count start) |
| string_base & | erase_count_end (character_count count) |
| string_base & | index_erase (character_count start, character_count count) |
| string_base & | index_erase (character_count count) |
| erase count characters from start | |
| string_base & | erase (const_iterator start, character_count count) |
| string_base & | erase (const_iterator start, const_iterator end=0) |
| ::collection::count | insert (character_count iIndex, CHARACTER ch) |
| ::collection::count | insert (character_count iIndex, const string_base &str) |
| ::collection::count | replace_with (CHARACTER charNew, CHARACTER charOld, character_count start=0) |
| template<typename EQUALITY> | |
| ::collection::count | _replace_with (const SCOPED_STRING &scopedstrNew, const SCOPED_STRING &scopedstrOld, character_count start, EQUALITY equality) |
| ::collection::count | replace_with (const SCOPED_STRING &scopedstrNew, const SCOPED_STRING &scopedstrOld, character_count start=0) |
| ::collection::count | case_insensitive_replace_with (const SCOPED_STRING &scopedstrNew, const SCOPED_STRING &scopedstrOld, character_count start=0) |
| ::collection::count | replace_with_count (const SCOPED_STRING &scopedstrNew, const SCOPED_STRING &scopedstrOld, character_count iStart=0) |
| ::collection::count | replace_with_ci_count (const SCOPED_STRING &scopedstrNew, const SCOPED_STRING &scopedstrOld, character_count iStart=0) |
| ::collection::count | find_replace (CHARACTER charOld, CHARACTER charNew, character_count iStart=0) |
| ::collection::count | find_replace (const SCOPED_STRING &scopedstrOld, const SCOPED_STRING &scopedstrNew, character_count start=0) |
| ::collection::count | case_insensitive_find_replace (const SCOPED_STRING &scopedstrOld, const SCOPED_STRING &scopedstrNew, character_count start=0) |
| ::collection::count | find_replace_count (const SCOPED_STRING &scopedstrOld, const SCOPED_STRING &scopedstrNew, character_count iStart=0) |
| ::collection::count | case_insensitive_find_replace_count (const SCOPED_STRING &scopedstrOld, const SCOPED_STRING &scopedstrNew, character_count iStart=0) |
| string_base & | replace (const_iterator start, const_iterator end, const SCOPED_STRING &scopedstr) |
| string_base & | replace_index (character_count start, character_count end, const SCOPED_STRING &scopedstr) |
| ::collection::count | erase_character (CHARACTER chRemove) |
| ::collection::count | erase_any_character_in (const SCOPED_STRING &scopedstrCharacters) |
| string_base | Tokenize (const SCOPED_STRING &scopedstrTokens, character_count &iStart) const |
| string_base & | begins_eat_any_character_in (const SCOPED_STRING &scopedstrCharacters=0) |
| string_base | intersection (const SCOPED_STRING &scopedstr) const |
| string_base | ansistr () const |
| unicode_iterator< CHARACTER > | unicode_begin () const |
| unicode_iterator< CHARACTER > | unicode_end () const |
| template<prototype_integral START> | |
| string_base | unicode_substr (START start) const |
| template<prototype_integral START, prototype_integral COUNT> | |
| string_base | unicode_substr (START start, COUNT count) const |
| constexpr bool | starts_with_word (const SCOPED_STRING &range, const ::get_word_function< ITERATOR_TYPE > &functionGetWord) const |
| string_base | get_word (const SCOPED_STRING &sSep) |
| const_string_range< ITERATOR_TYPE > | _peek_word (const SCOPED_STRING &sSep, ITERATOR_TYPE *ppnext=nullptr) const |
| string_base | peek_word (const SCOPED_STRING &sSep, ITERATOR_TYPE *ppnext=nullptr) const |
| constexpr bool | case_insensitive_starts_with_word (const SCOPED_STRING &range, const get_word_function< ITERATOR_TYPE > &functionGetWord) const |
| constexpr bool | starts_with_word (const SCOPED_STRING &range) const |
| constexpr bool | case_insensitive_starts_with_word (const SCOPED_STRING &range) const |
| bool | begins_eat (const SCOPED_STRING &scopedstrPrefix) |
| bool | ends_eat (const SCOPED_STRING &scopedstrSuffix) |
| bool | case_insensitive_begins_eat (const SCOPED_STRING &scopedstrPrefix) |
| bool | case_insensitive_ends_eat (const SCOPED_STRING &scopedstrSuffix) |
| bool | begins_erase_get_erased (string_base &strErased, const SCOPED_STRING &scopedstr) |
| bool | ends_erase_get_erased (string_base &strErased, const SCOPED_STRING &scopedstr) |
| bool | begins_replace (const SCOPED_STRING &scopedstrNewPrefix, const SCOPED_STRING &scopedstrPrefix) |
| bool | case_insensitive_begins_replace (const SCOPED_STRING &scopedstrNewPrefix, const SCOPED_STRING &scopedstrPrefix) |
| bool | begins_get_remainder (string_base &strRemainder, const SCOPED_STRING &scopedstr) const |
| bool | ends_get_remainder (string_base &strRemainder, const SCOPED_STRING &scopedstr) const |
| bool | case_insensitive_begins_get_remainder (string_base &strRemainder, const SCOPED_STRING &scopedstr) const |
| bool | case_insensitive_ends_get_remainder (string_base &strRemainder, const SCOPED_STRING &scopedstr) const |
| string_base | begins_bitten (const SCOPED_STRING &scopedstr) const |
| string_base | ends_bitten (const SCOPED_STRING &scopedstr) const |
| string_base | case_insensitive_begins_bitten (const SCOPED_STRING &scopedstr) const |
| string_base | case_insensitive_ends_bitten (const SCOPED_STRING &scopedstr) const |
| string_base | case_insensitive_begins_eaten (const SCOPED_STRING &scopedstr) const |
| string_base | case_insensitive_ends_eaten (const SCOPED_STRING &scopedstr) const |
| string_base & | ensure_prefix (const SCOPED_STRING &scopedstrPrefix) |
| string_base & | case_insensitive_ensure_prefix (const SCOPED_STRING &scopedstrPrefix) |
| string_base & | ensure_suffix (const SCOPED_STRING &scopedstrSuffix) |
| string_base & | case_insensitive_ensure_suffix (const SCOPED_STRING &scopedstrSuffix) |
| string_base | defer_prefixed (const SCOPED_STRING &scopedstrPrefix) const |
| string_base | case_insensitive_defer_prefixed (const SCOPED_STRING &scopedstrPrefix) const |
| string_base | defer_suffixed (const SCOPED_STRING &scopedstrSuffix) const |
| string_base | case_insensitive_defer_suffixed (const SCOPED_STRING &scopedstrSuffix) const |
| bool | eat_before (string_base &strBefore, const SCOPED_STRING &strSeparator, bool bEatEverythingIfNotFound=false) |
| bool | eat_before_let_separator (string_base &strBefore, const SCOPED_STRING &strSeparator, bool bEatEverythingIfNotFound=false) |
| string_base & | make_upper () |
| string_base & | make_lower () |
| string_base & | MakeReverse () |
| string_base | lower () const |
| string_base | upper () const |
| string_base | uppered () const |
| string_base | reversed () const |
| string_base & | trim_right () |
| string_base & | trim_left () |
| string_base & | trim () |
| string_base & | trim (CHARACTER chTarget) |
| string_base & | trim (const SCOPED_STRING &scopedstrTargets) |
| string_base & | trim_right (CHARACTER chTarget) |
| string_base & | trim_right (const SCOPED_STRING &scopedstrTargets) |
| template < pointer_castable < CHARACTER > PCHAR > | |
| string_base & | trim_left (CHARACTER chTarget) |
| string_base & | trim_left (const SCOPED_STRING &scopedstrTargets) |
| string_base | right_trimmed () const |
| string_base | left_trimmed () const |
| string_base | trimmed () const |
| string_base | trimmed (CHARACTER chTarget) const |
| string_base | trimmed (const SCOPED_STRING &scopedstrTargets) const |
| string_base | right_trimmed (CHARACTER chTarget) const |
| string_base | right_trimmed (const SCOPED_STRING &scopedstrCharacters) const |
| string_base | left_trimmed (CHARACTER chTarget) const |
| string_base | left_trimmed (const SCOPED_STRING &strTargets) const |
| bool | pair_trim (CHARACTER character1, CHARACTER character2) |
| string_base & | pair_trim_quotes () |
| string_base | paired_trim_quotes () |
| string_base & | formatf (const CHARACTER *pszFormat,...) |
| string_base & | formatf_arguments (const CHARACTER *pszFormat, va_list args) |
| string_base & | format_arguments (const scoped_string &scopedstrFormat, std::format_args args) |
| string_base & | format_arguments (const scoped_wstring &scopedstrFormat, std::wformat_args args) |
| string_base & | append_formatf (const CHARACTER *pszFormat,...) |
| string_base & | append_formatf_arguments (const CHARACTER *pszFormat, va_list args) |
| template<typename... Args> | |
| string_base & | format (::std::format_string< Args... > fmt, Args &&... args) |
| template<typename... Args> | |
| string_base & | append_format (std::format_string< Args... > fmt, Args &&... args) |
|
template<typename... Args> requires (::is_same<CHARACTER, ansi_character>) | |
| string_base & | runtime_format (const scoped_string &scopedstrFormat, Args &&... args) |
|
template<typename... Args> requires (::is_same<CHARACTER, wide_character>) | |
| string_base & | runtime_format (const scoped_wstring &scopedstrFormat, Args &&... args) |
| void | resize (character_count n) |
| void | resize (character_count n, CHARACTER c) |
| string_base | unichar_substr (character_count iFirst) const |
| string_base | unichar_substr (character_count iFirst, character_count nCount) const |
| string_base | unichar_left (character_count nCount) const |
| string_base | unichar_mid (character_count iFirst) const |
| string_base | unichar_mid (character_count iFirst, character_count nCount) const |
| void | clear () |
|
template<typename... Args> requires (::is_same<CHARACTER, ansi_character>) | |
| string_base< ITERATOR_TYPE > & | runtime_format (const scoped_string &scopedstrFormat, Args &&... args) |
|
template<typename... Args> requires (::is_same<CHARACTER, wide_character>) | |
| string_base< ITERATOR_TYPE > & | runtime_format (const scoped_wstring &scopedstrFormat, Args &&... args) |
| template<typename EQUALITY> | |
| inline ::collection::count | _replace_with (const SCOPED_STRING &scopedstrNew, const SCOPED_STRING &scopedstrOld, character_count start, EQUALITY equality) |
| template<prototype_character CHARACTER2> | |
| inline ::string_base< ITERATOR_TYPE > & | assign (const CHARACTER2 *start, character_count len) |
| template<prototype_character CHARACTER2> | |
| string_base< ITERATOR_TYPE > & | _assign (const CHARACTER2 *pszSource, character_count len) |
| template<prototype_character CHARACTER2> | |
| string_base< ITERATOR_TYPE > & | assign (CHARACTER2 chSrc, character_count repeat) |
| template<prototype_character CHARACTER2> | |
| string_base< ITERATOR_TYPE > & | assign (const CHARACTER2 *start, const CHARACTER2 *end) |
| template<typename EQUALITY> | |
| inline ::collection::count | _replace_with (const SCOPED_STRING &scopedstrNew, const SCOPED_STRING &scopedstrOld, character_count start, EQUALITY equality) |
| template<typename ITERATOR_TYPE> | |
| string_base< ITERATOR_TYPE > & | operator= (const scoped_ansi_string &ansistr) |
| template<typename ITERATOR_TYPE> | |
| string_base< ITERATOR_TYPE > & | operator= (const scoped_wd16_string &wd16str) |
| template<typename ITERATOR_TYPE> | |
| string_base< ITERATOR_TYPE > & | operator= (const scoped_wd32_string &wd32str) |
| template<prototype_character CHARACTER2> | |
| string_base< ITERATOR_TYPE > & | assign (const CHARACTER2 *start, const CHARACTER2 *end) |
| template<prototype_character CHARACTER2> | |
| inline ::string_base< ITERATOR_TYPE > & | assign (const CHARACTER2 *start, character_count len) |
|
template<prototype_character SAME_SIZE_CHARACTER> requires (sizeof(SAME_SIZE_CHARACTER) == sizeof(CHARACTER)) | |
| string_base< ITERATOR_TYPE > & | _assign (const SAME_SIZE_CHARACTER *pszSource, character_count length) |
|
template<prototype_character OTHER_SIZE_CHARACTER> requires (sizeof(OTHER_SIZE_CHARACTER) != sizeof(CHARACTER)) | |
| string_base< ITERATOR_TYPE > & | _assign (const OTHER_SIZE_CHARACTER *pszSource, character_count srclen) |
| template<prototype_character CHARACTER2> | |
| string_base< ITERATOR_TYPE > & | assign (CHARACTER2 chSrc, character_count repeat) |
| Public Member Functions inherited from const_string_range< ITERATOR_TYPE > | |
| const_string_range (no_initialize_t) | |
| const_string_range (nullptr_t) | |
| template<prototype_integral INTEGRAL> | |
| constexpr | const_string_range (const_iterator begin, INTEGRAL count) |
|
template<typed_range< iterator > TYPED_RANGE> requires (!::std::is_same_v < TYPED_RANGE, THIS_RANGE >) | |
| constexpr | const_string_range (const TYPED_RANGE &range) |
| constexpr | const_string_range (const const_string_range &range) |
| constexpr | const_string_range (const_string_range &&range) |
| constexpr | const_string_range (this_iterator begin, this_iterator end, enum_range erange=e_range_none, BASE_DATA *pbasedata=nullptr) |
| const_string_range (const ::block &block) | |
| const_string_range (ITERATOR_TYPE psz) | |
| const_string_range | start_count (character_count start, character_count count=-1) |
| ::collection::count | length () const |
| const_string_range & | assign_bounded (ITERATOR_TYPE psz, character_count start, character_count count) |
| const_string_range | subrange (character_count iFirst) const |
| const_string_range | subrange (const_iterator p) const |
| const_string_range | subrange (const_iterator p, character_count count) const |
| template<prototype_integral START, prototype_integral COUNT> | |
| const_string_range | subrange (START start, COUNT count) const |
| template<prototype_integral START> | |
| const_string_range | subrange (START start, const_iterator p) const |
| auto & | last () const |
| auto & | last (::collection::index i) const |
| auto | last_index () const |
| auto | last_index (::collection::index i) const |
| bool | is_trimmed_empty () const |
| constexpr THIS_RANGE | _begin_set (ITERATOR_TYPE pbegin) const |
| constexpr THIS_RANGE | begin_set (ITERATOR_TYPE pbegin) const |
| constexpr THIS_RANGE | _end_set (ITERATOR_TYPE pend) const |
| constexpr THIS_RANGE | end_set (ITERATOR_TYPE pend) const |
| template<prototype_integral START, prototype_integral COUNT> | |
| STRING_RANGE | operator() (START start, COUNT count) const |
| template<prototype_integral START, typed_character_pointer< const_string_range< ITERATOR_TYPE >::CHARACTER > CHARACTER_POINTER> | |
| STRING_RANGE | operator() (START start, CHARACTER_POINTER end) const |
| template<typed_character_pointer< typename const_string_range< ITERATOR_TYPE >::CHARACTER > CHARACTER_POINTER> | |
| STRING_RANGE | operator() (CHARACTER_POINTER start) const |
| template<prototype_integral START> | |
| STRING_RANGE | operator() (START start) const |
| STRING_RANGE | operator() () const |
| template<prototype_integral START, prototype_integral COUNT> | |
| auto | substr (START start, COUNT count) const |
| template<prototype_integral START, typed_character_pointer< typename const_string_range< ITERATOR_TYPE >::CHARACTER > CHARACTER_POINTER> | |
| auto | substr (START start, CHARACTER_POINTER end) const |
| template<typed_character_pointer< typename const_string_range< ITERATOR_TYPE >::CHARACTER > CHARACTER_POINTER> | |
| auto | substr (CHARACTER_POINTER start) const |
| template<prototype_integral START> | |
| auto | substr (START start) const |
| ::end_of_line_and_next_line< const CHARACTER * > | end_of_line_and_next_line () const |
| constexpr bool | has_character () const |
| bool | is_empty () const noexcept |
| memsize | length_in_bytes () const |
| character_count | get_upper_bound (character_count i=-1) const noexcept |
| operator::block () const | |
| CHARACTER | _character_at (character_count i) const |
| CHARACTER | character_at (character_count i) const |
| const CHARACTER * | data () const |
| operator const CHARACTER * () const | |
| const CHARACTER * | address_at (::collection::index i) const |
| const CHARACTER * | rear_address (::collection::index i) const |
| const CHARACTER & | operator[] (::collection::index i) const |
| character_count | index_of (const CHARACTER *p) const |
| const_string_range | trimmed_left () const |
| const_string_range | trimmed_left (const SCOPED_STRING &scopedstr) const |
| const_string_range | trimmed_right () const |
| const_string_range | trimmed_right (const SCOPED_STRING &scopedstr) const |
| const_string_range | trimmed () const |
| constexpr bool | _is_p_in_range (ITERATOR_TYPE p) const |
| const_string_range & | trim_left (const SCOPED_STRING &scopedstrAnyPrefixCharacterToTrim) |
| const_string_range & | trim_left () |
| const_string_range & | trim_right (const SCOPED_STRING &scopedstrAnySuffixCharacterToTrim) |
| const_string_range & | trim_right () |
| const_string_range & | trim (const SCOPED_STRING &scopedstrAnyPrefixCharacterToTrim, const SCOPED_STRING &scopedstrAnySuffixCharacterToTrim) |
| const_string_range & | trim () |
| bool | defer_trim (const SCOPED_STRING &scopedstrAnyPrefixCharacterToTrim, const SCOPED_STRING &scopedstrAnySuffixCharacterToTrim) |
| const_string_range | trimmed (const SCOPED_STRING &scopedstr) const |
| THIS_RANGE | get_utf8_char () const |
| ::std::strong_ordering | collate (const SCOPED_STRING &range) const noexcept |
| ::std::strong_ordering | case_insensitive_collate (const SCOPED_STRING &range) const noexcept |
| bool | operator== (const THIS_RANGE &range) const |
| constexpr ::std::strong_ordering | _order (const SCOPED_STRING &range) const |
| constexpr ::std::strong_ordering | operator<=> (const SCOPED_STRING &range) const |
| template<typed_character_range< CHARACTER > CHARACTER_RANGE> | |
| constexpr bool | equals (const CHARACTER_RANGE &range) const |
| template<typed_character_pointer< CHARACTER > CHARACTER_POINTER> | |
| constexpr bool | equals (CHARACTER_POINTER psz) const |
| constexpr bool | has_file_extension_without_dot (const SCOPED_STRING &scopedstrFileExtensionWithoutDot) const |
| constexpr bool | equals (const SCOPED_STRING &scopedstr) const |
| template<typed_character_range< CHARACTER > CHARACTER_RANGE> | |
| constexpr bool | case_insensitive_equals (const CHARACTER_RANGE &range) const |
| template<typed_character_pointer< CHARACTER > CHARACTER_POINTER> | |
| constexpr bool | case_insensitive_equals (CHARACTER_POINTER psz) const |
| constexpr bool | case_insensitive_equals (const SCOPED_STRING &scopedstr) const |
| template<typed_character_range< CHARACTER > CHARACTER_RANGE> | |
| constexpr ::i32 | compare (const CHARACTER_RANGE &range) const |
| template<typed_character_pointer< CHARACTER > CHARACTER_POINTER> | |
| constexpr ::i32 | compare (CHARACTER_POINTER psz) const |
| constexpr ::i32 | compare (const SCOPED_STRING &scopedstr) const |
| template<typed_character_range< CHARACTER > CHARACTER_RANGE> | |
| constexpr ::i32 | case_insensitive_compare (const CHARACTER_RANGE &range) const |
| template<typed_character_pointer< CHARACTER > CHARACTER_POINTER> | |
| constexpr ::i32 | case_insensitive_compare (CHARACTER_POINTER psz) const |
| constexpr ::i32 | case_insensitive_compare (const SCOPED_STRING &scopedstr) const |
| template<typed_character_range< CHARACTER > CHARACTER_RANGE> | |
| constexpr ::std::strong_ordering | order (const CHARACTER_RANGE &range) const |
| template<typed_character_pointer< CHARACTER > CHARACTER_POINTER> | |
| constexpr ::std::strong_ordering | order (CHARACTER_POINTER psz) const |
| constexpr ::std::strong_ordering | order (const SCOPED_STRING &scopedstr) const |
| template<typed_character_range< CHARACTER > CHARACTER_RANGE> | |
| constexpr ::std::strong_ordering | case_insensitive_order (const CHARACTER_RANGE &range) const |
| template<typed_character_pointer< CHARACTER > CHARACTER_POINTER> | |
| constexpr ::std::strong_ordering | case_insensitive_order (CHARACTER_POINTER psz) const |
| constexpr ::std::strong_ordering | case_insensitive_order (const SCOPED_STRING &scopedstr) const |
| constexpr const_iterator | _find (const SCOPED_STRING &range) const |
| constexpr const_iterator | find (const SCOPED_STRING &range) const |
| constexpr character_count | find_index (const SCOPED_STRING &range, character_count start=0) const |
| constexpr character_count | find_index (CHARACTER ch, character_count start=0) const |
| constexpr const_iterator | _rear_find (const SCOPED_STRING &range, const_iterator end=nullptr) const |
| constexpr const_iterator | rear_find (const SCOPED_STRING &range, const_iterator end=nullptr) const |
| constexpr character_count | _rear_find_index (const SCOPED_STRING &range, character_count end=-1) const |
| constexpr character_count | rear_find_index (const SCOPED_STRING &range, character_count end=-1) const |
| constexpr const_iterator | _rear_find (CHARACTER character, const_iterator end=nullptr) const |
| constexpr const_iterator | rear_find (CHARACTER character, const_iterator end=nullptr) const |
| constexpr character_count | _rear_find_index (CHARACTER character, character_count end=-1) const |
| constexpr character_count | rear_find_index (CHARACTER character, character_count end=-1) const |
| const_iterator | case_insensitive_find (const SCOPED_STRING &scopedstr) const RELEASENOTHROW |
| character_count | case_insensitive_find_index (const SCOPED_STRING &scopedstr) const RELEASENOTHROW |
| character_count | case_insensitive_find_index (const SCOPED_STRING &scopedstr, character_count start) const RELEASENOTHROW |
| constexpr const_iterator | _case_insensitive_rear_find (const SCOPED_STRING &scopedstr) const |
| character_count | _case_insensitive_rear_find_index (const SCOPED_STRING &scopedstr, character_count end=-1) const RELEASENOTHROW |
| constexpr const_iterator | case_insensitive_rear_find (const SCOPED_STRING &scopedstr) const |
| character_count | case_insensitive_rear_find_index (const SCOPED_STRING &scopedstr, character_count end=-1) const RELEASENOTHROW |
| constexpr const_iterator | _find_first_character (CHARACTER ch) const |
| constexpr character_count | _find_first_character_index (CHARACTER ch) const |
| constexpr const_iterator | find_first_character (CHARACTER ch) const |
| constexpr const_iterator | _find_first_character_in (const SCOPED_STRING &range) const |
| constexpr character_count | _find_first_character_in_index (const SCOPED_STRING &range) const |
| constexpr const_iterator | find_first_character_in (const SCOPED_STRING &range) const |
| constexpr character_count | find_first_character_in_index (const SCOPED_STRING &range, ::character_count start=0) const |
| constexpr bool | contains_any_character_in (const SCOPED_STRING &range) const |
| string_base< ITERATOR_TYPE > | lowered () const |
| string_base< ITERATOR_TYPE > | uppered () const |
| template<::comparison::equality< ITEM > EQUALITY> | |
| constexpr ITERATOR_TYPE | _skip_any_character_in (const THIS_RANGE &rangeBlock, EQUALITY equality) const |
| constexpr ITERATOR_TYPE | skip_any_character_in (const SCOPED_STRING &range) const |
| constexpr ITERATOR_TYPE | rear_skip_any_character_in (const THIS_RANGE &range) const noexcept |
| constexpr const_iterator | _skip (CHARACTER item) const |
| constexpr const_iterator | skip (CHARACTER item) const |
| constexpr const_iterator | _rear_find_first_character_in (const SCOPED_STRING &range) const noexcept |
| constexpr const_iterator | rear_find_first_character_in (const SCOPED_STRING &range) const noexcept |
| constexpr bool | _begins (const SCOPED_STRING &range) const |
| constexpr bool | begins (const SCOPED_STRING &range) const |
| bool | begins_eat (const SCOPED_STRING &range) |
| ::collection::count | begins_count (bool(*character_is_function)(CHARACTER character)) const |
| constexpr bool | _ends (const SCOPED_STRING &range) const |
| constexpr bool | ends (const SCOPED_STRING &range) const |
| template<typename PRED> | |
| bool | is_every_char (PRED pred) const |
| template<typename NUMBER> | |
| NUMBER & | translate_index (NUMBER &number) const |
| bool | contains (const SCOPED_STRING &scopedstr=0) const |
| bool | contains (CHARACTER ch) const |
| bool | contains (const SCOPED_STRING &scopedstr, const CHARACTER **ppszBeg, const CHARACTER **ppszEnd=nullptr) const |
| template<prototype_array STRING_ARRAY> | |
| bool | contains_any (const STRING_ARRAY &stra) const |
| template<prototype_array STRING_ARRAY> | |
| bool | contains_all (const STRING_ARRAY &stra) const |
| bool | case_insensitive_contains (const SCOPED_STRING &scopedstr=0) const |
| bool | case_insensitive_contains (const SCOPED_STRING &scopedstr, const CHARACTER **ppszBeg, const CHARACTER **ppszEnd=nullptr) const |
| template<prototype_array STRING_ARRAY> | |
| bool | case_insensitive_contains_at_least_one_of (const STRING_ARRAY &stra) const |
| template<prototype_array STRING_ARRAY> | |
| bool | case_insensitive_contains_all (const STRING_ARRAY &stra) const |
| bool | unicode_case_insensitive_contains (const SCOPED_STRING &scopedstr=0) const |
| bool | unicode_case_insensitive_contains (const SCOPED_STRING &scopedstr, const CHARACTER **ppszBeg, const CHARACTER **ppszEnd=nullptr) const |
| template<prototype_array STRING_ARRAY> | |
| bool | unicode_case_insensitive_contains_at_least_one_of (const STRING_ARRAY &stra) const |
| template<prototype_array STRING_ARRAY> | |
| bool | unicode_case_insensitive_contains_all (const STRING_ARRAY &stra) const |
| template<::comparison::equality< CHARACTER > EQUALITY> | |
| ::collection::count | _occurrence_count_of (const SCOPED_STRING &scopedstr, EQUALITY equality) const |
| ::collection::count | occurrence_count_of (const SCOPED_STRING &scopedstr=0) const |
| ::collection::count | case_insensitive_occurrence_count_of (const SCOPED_STRING &scopedstr=0) const |
| const_iterator | find (CHARACTER ch) const RELEASENOTHROW |
| const_iterator | case_insensitive_find (CHARACTER ch) const RELEASENOTHROW |
| character_count | case_insensitive_find_index (CHARACTER ch) const RELEASENOTHROW |
| character_count | case_insensitive_find_index (CHARACTER ch, character_count start) const RELEASENOTHROW |
| const_iterator | find_skip_or_end (CHARACTER ch=0) const RELEASENOTHROW |
| ITERATOR_TYPE | find_first_whitespace () const RELEASENOTHROW |
| for the rear_* functions the most relevant returned value is actually in m_end. | |
| ITERATOR_TYPE | skip_whitespace () const RELEASENOTHROW |
| ::character_count | count_left (const SCOPED_STRING &range=typed_whitespace< CHARACTER >()) const RELEASENOTHROW |
| ITERATOR_TYPE | rear_find_first_whitespace () const RELEASENOTHROW |
| ITERATOR_TYPE | rear_skip_whitespace () const RELEASENOTHROW |
| ::character_count | count_right (const SCOPED_STRING &range=typed_whitespace< CHARACTER >()) const RELEASENOTHROW |
| ::character_count | count_left_and_right (const SCOPED_STRING &range=typed_whitespace< CHARACTER >()) const RELEASENOTHROW |
| const_string_range | begins_bitten (const SCOPED_STRING &scopedstrPrefix) const |
| const_string_range & | operator= (const THIS_RANGE &range) |
| const_string_range & | operator= (const_string_range &&range) |
| const_string_range & | operator= (const block &block) |
| bool | case_insensitive_begins (const SCOPED_STRING &scopedstrPrefix) const |
| bool | case_insensitive_ends (const SCOPED_STRING &scopedstrSuffix) const |
| const_iterator | unicode_find (const SCOPED_STRING &scopedstr) const RELEASENOTHROW |
Find the first occurrence of scopedstr, starting at start position and up to count characters from start. Optionally returns at ppszTail the address immediately after where scopedstr was found in the string. | |
| const_iterator | unicode_case_insensitive_find (const SCOPED_STRING &scopedstr) const RELEASENOTHROW |
| ::collection::index | unicode_case_insensitive_find_index (const SCOPED_STRING &scopedstr, character_count start=0) const RELEASENOTHROW |
| const_iterator | unicode_rear_find (const SCOPED_STRING &scopedstr) const RELEASENOTHROW |
| const_iterator | unicode_case_insensitive_rear_find (const SCOPED_STRING &scopedstr) const RELEASENOTHROW |
| const_iterator | find_first (CHARACTER chSeparator, ::character_count start=0) const RELEASENOTHROW |
| character_count _find_first_character_in(const CHARACTER * blockCharacters, character_count iStart = 0) const RELEASENOTHROW; | |
| const_iterator | _rear_skip (CHARACTER ca) const RELEASENOTHROW |
| const_iterator | rear_skip (CHARACTER ca) const RELEASENOTHROW |
| CHARACTER | last_char (character_count count=-1) const |
| character_count | unichar_count () const |
| const_iterator | unichar_at (character_count iUnicharIndex) const |
| bool | operator== (const ::character_range< const CHARACTER * > &range) const |
| template<character_count n> | |
| bool | operator== (const CHARACTER(&s)[n]) const |
|
template<typename OTHER_CHARACTER> requires other_primitive_character < OTHER_CHARACTER, CHARACTER > | |
| bool | operator== (const ::character_range< const OTHER_CHARACTER * > &range) const |
| bool | operator== (const ::ansi_character *psz) const |
| bool | operator== (const ::wd16_character *psz) const |
| bool | operator== (const ::wd32_character *psz) const |
| bool | operator== (const ::inline_number_string &inline_number_string) const |
| bool | xml_is_comment () const |
| ::std::strong_ordering | escape_case_insensitive_count_order (const ::scoped_string &scopedstr, ::i32 escape) const |
| STRING | surrounded (const SCOPED_STRING &scopedstr) const |
| STRING | surrounded (const SCOPED_STRING &scopedstrLeft, const SCOPED_STRING &scopedstrRight) const |
| STRING | f64_quoted (bool bEscape=false) const |
| STRING | single_quoted (bool bEscape) const |
| STRING_ARRAY | explode (const SCOPED_STRING &scopedstrSeparator, bool bAddEmpty=true) const |
| STRING_RANGE | _get_count_parts_from_beginning (::collection::count cPathPartCountToConsume, CHARACTER chSeparator) const |
| THIS_RANGE | right (character_count nCount) const |
| THIS_RANGE | left (character_count count) const |
| THIS_RANGE | left (const_iterator p) const |
| THIS_RANGE | left_including_any_character_in (const SCOPED_STRING &scopedstrCharSet) const |
| THIS_RANGE | left_skipping_any_character_in (const SCOPED_STRING &scopedstrCharSet) const |
| ITERATOR_TYPE | __count_parts_from_beginning (::collection::count &cPathMaxPartCount, CHARACTER chPartSeparator) const |
| Public Member Functions inherited from character_range< ITERATOR_TYPE > | |
| constexpr | character_range (no_initialize_t) |
| constexpr | character_range (nullptr_t) |
| template<typed_character_pointer< typename character_range< ITERATOR_TYPE >::CHARACTER > CHARACTER_POINTER> | |
| character_range (CHARACTER_POINTER begin, CHARACTER_POINTER end, enum_range erange=e_range_none, BASE_DATA *pbasedata=nullptr) | |
| template<other_character_pointer< typename character_range< ITERATOR_TYPE >::CHARACTER > OTHER_CHARACTER_POINTER> | |
| character_range (OTHER_CHARACTER_POINTER start, OTHER_CHARACTER_POINTER end, enum_range erange=e_range_none)=delete | |
| template<character_count length> | |
| character_range (const CHARACTER(&s)[length]) | |
| template<character_pointer CHARACTER_POINTER> | |
| character_range (CHARACTER_POINTER start) | |
| template<character_pointer CHARACTER_POINTER> | |
| character_range (CHARACTER_POINTER start, character_count length)=delete | |
| template<other_primitive_character< CHARACTER > OTHER_CHARACTER, character_count length> | |
| character_range (const CHARACTER(&s)[length])=delete | |
| character_range (const character_range &characterrange) | |
| character_range (character_range &&characterrange) | |
|
template<typename TYPED_RANGE> requires (typed_range<TYPED_RANGE, this_iterator> && !std::is_same_v<std::decay_t<TYPED_RANGE>, character_range>) | |
| character_range (const TYPED_RANGE &range) | |
|
template<typename OTHER_RANGE> requires (other_character_range<OTHER_RANGE, CHARACTER>) | |
| character_range (const OTHER_RANGE &range)=delete | |
| BASE_DATA * | create_string_data2 (character_count lengthNew, enum_range erange) |
| memsize | storage_count () const |
| character_count | storage_character_count () const |
| character_count | length () const |
| character_count | size () const |
| memsize | character_count_in_bytes () const |
| memsize | null_terminated_character_count_in_bytes () const |
| character_range & | operator= (const character_range &range) |
| character_range & | operator= (character_range &&range) |
| constexpr bool | has_string_storage () const |
| constexpr bool | is_null_terminated () const |
| constexpr bool | is_working_string_range () const |
| void | set_null () |
| void | _set_length (::character_count count) |
|
template<typename SAME_ITERATOR_TYPE> requires (sizeof(get_iterator_item < SAME_ITERATOR_TYPE >) == sizeof(CHARACTER)) | |
| void | construct_string (SAME_ITERATOR_TYPE start, SAME_ITERATOR_TYPE end, enum_range erange=e_range_none, typename ::character_range< SAME_ITERATOR_TYPE >::BASE_DATA *pbasedata=nullptr) |
|
template<typename OTHER_ITERATOR_TYPE> requires (sizeof(get_iterator_item < OTHER_ITERATOR_TYPE >) != sizeof(CHARACTER)) | |
| void | construct_string (OTHER_ITERATOR_TYPE start, OTHER_ITERATOR_TYPE end, enum_range erange=e_range_none) |
| Public Member Functions inherited from block_range< ITERATOR_TYPE > | |
| constexpr | block_range (no_initialize_t noinitialize) |
| constexpr | block_range (nullptr_t) |
|
template<::collection::count count> requires (!prototype_character < ITEM >) | |
| constexpr | block_range (const ITEM(&array)[count], enum_range erange=e_range_none) |
|
template<typed_range< iterator > TYPED_RANGE> requires (!::std::is_same_v < TYPED_RANGE, THIS_RANGE >) | |
| constexpr | block_range (const TYPED_RANGE &range) |
| constexpr | block_range (const block_range &range) |
| constexpr | block_range (block_range &&range) |
| template<typename TYPE> | |
| constexpr | block_range (TYPE *&p) |
| template<prototype_integral INTEGRAL> | |
| constexpr | block_range (this_iterator begin, INTEGRAL count, enum_range erange=e_range_none) |
| constexpr | block_range (this_iterator begin, this_iterator end, enum_range erange=e_range_none) |
| template<::comparison::equality< ITEM > EQUALITY> | |
| constexpr | block_range (this_iterator begin, EQUALITY equality) |
| block_range & | operator= (const block_range &range) |
| block_range & | operator= (block_range &&range) |
| const ::block | block () const |
| ::block | block () |
| Public Member Functions inherited from range< ITERATOR_TYPE > | |
| constexpr | range (no_initialize_t) |
| constexpr | range (nullptr_t) |
|
template<::collection::count count> requires (!prototype_character < ITEM >) | |
| constexpr | range (const ITEM(&array)[count], enum_range erange=e_range_none) |
|
template<typed_range< iterator > TYPED_RANGE> requires (!::std::is_same_v < TYPED_RANGE, THIS_RANGE >) | |
| constexpr | range (const TYPED_RANGE &range) |
| constexpr | range (const range &range) |
| constexpr | range (range &&range) |
| template<typename TYPE> | |
| constexpr | range (TYPE *&p) |
| template<prototype_integral INTEGRAL> | |
| constexpr | range (this_iterator begin, INTEGRAL count, enum_range erange=e_range_none) |
| constexpr | range (this_iterator begin, this_iterator end, enum_range erange=e_range_none) |
| template<::comparison::equality< ITEM > EQUALITY> | |
| constexpr | range (this_iterator begin, EQUALITY equality) |
| range & | operator= (const range &range) |
| range & | operator= (range &&range) |
| void | add_initializer_list (const ::std::initializer_list< ITEM > &initializer_list) |
| void | set_null () |
| template<prototype_integral START> | |
| constexpr THIS_RAW_RANGE | operator() (START start) const |
| template<prototype_integral START, prototype_integral COUNT> | |
| constexpr THIS_RAW_RANGE | operator() (START start, COUNT count) const |
| ::collection::count | array_get_count () const |
| template<same_as< ITEM > A_ITEM> | |
| void | block_concatenate_to (A_ITEM *&p) |
| template<prototype_integral START> | |
| constexpr THIS_RAW_RANGE | operator() (START start) |
| template<prototype_integral START, prototype_integral COUNT> | |
| THIS_RAW_RANGE | operator() (START start, COUNT count) |
| constexpr auto | index_of (const_iterator p) const |
| this_iterator & | begin () |
| this_iterator & | end () |
| const_iterator | begin () const |
| const_iterator | end () const |
| this_iterator & | begin (this_iterator begin) |
| this_iterator & | end (this_iterator end) |
| auto & | first () |
| auto & | first () const |
| constexpr this_iterator | data () |
| constexpr const this_iterator | data () const |
| constexpr ::collection::count | size () const |
| constexpr memsize | size_in_bytes () const |
| constexpr bool | is_empty () const |
| constexpr bool | is_set () const |
| bool | operator! () const |
| constexpr bool | is_before_begin (const_iterator iterator) const |
| constexpr bool | is_end (const_iterator iterator) const |
| constexpr bool | is_iterator_ok (const_iterator iterator) const |
| constexpr bool | is_this_range (const range &range) const |
| constexpr THIS_RAW_RANGE | _start_range (memsize start) const |
| constexpr THIS_RAW_RANGE | _end_range (const_iterator end) const |
| constexpr THIS_RAW_RANGE | _start_count_range (memsize start, memsize count) const |
| template<::comparison::equality< ITEM > EQUALITY> | |
| constexpr bool | _equals (const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) const |
| template<::comparison::equality< ITEM > EQUALITY> | |
| constexpr bool | equals (const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) const |
| template<::comparison::ordering< ITEM > ORDERING> | |
| constexpr auto | _order (const THIS_RAW_RANGE &rangeBlock, ORDERING ordering) const |
| template<::comparison::ordering< ITEM > ORDERING> | |
| constexpr auto | order (const THIS_RAW_RANGE &rangeBlock, ORDERING ordering) const |
| template<::comparison::equality< ITEM > EQUALITY> | |
| constexpr const_iterator | _find (const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) const |
| template<::comparison::equality< ITEM > EQUALITY> | |
| constexpr const_iterator | find (const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) const |
| template<::comparison::equality< ITEM > EQUALITY> | |
| constexpr const_iterator | _rear_find (const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) const |
| template<::comparison::equality< ITEM > EQUALITY> | |
| constexpr const_iterator | rear_find (const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) const |
| template<::comparison::equality< ITEM > EQUALITY> | |
| constexpr const_iterator | _find_first_character (ITEM item, EQUALITY equality) const |
| template<::comparison::equality< ITEM > EQUALITY> | |
| constexpr const_iterator | find_first_character (ITEM item, EQUALITY equality) const |
| template<::comparison::equality< ITEM > EQUALITY> | |
| constexpr const_iterator | _find_first_character_in (const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) const |
| template<::comparison::equality< ITEM > EQUALITY> | |
| constexpr const_iterator | find_first_character_in (const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) const |
| template<::comparison::equality< ITEM > EQUALITY> | |
| constexpr const_iterator | _rear_find_first_character_in (const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) const |
| template<::comparison::equality< ITEM > EQUALITY> | |
| constexpr const_iterator | rear_find_first_character_in (const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) const |
| template<::comparison::equality< ITEM > EQUALITY> | |
| constexpr const_iterator | _skip (ARG_ITEM item, EQUALITY equality) const |
| template<::comparison::equality< ITEM > EQUALITY> | |
| constexpr const_iterator | skip (ARG_ITEM item, EQUALITY equality) const |
| template<::comparison::equality< ITEM > EQUALITY> | |
| constexpr const_iterator | _rear_skip (ARG_ITEM item, EQUALITY equality) const |
| template<::comparison::equality< ITEM > EQUALITY> | |
| constexpr const_iterator | rear_skip (ARG_ITEM item, EQUALITY equality) const |
| template<::comparison::equality< ITEM > EQUALITY> | |
| constexpr const_iterator | _rear_find (ARG_ITEM item, EQUALITY equality) const |
| template<::comparison::equality< ITEM > EQUALITY> | |
| constexpr const_iterator | rear_find (ARG_ITEM item, EQUALITY equality) const |
| template<::comparison::equality< ITEM > EQUALITY> | |
| constexpr bool | _begins (const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) const |
| template<::comparison::equality< ITEM > EQUALITY> | |
| constexpr bool | begins (const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) const |
| template<::comparison::equality< ITEM > EQUALITY> | |
| constexpr bool | _ends (const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) const |
| template<::comparison::equality< ITEM > EQUALITY> | |
| constexpr bool | ends (const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) const |
Static Public Member Functions | |
| static consteval bool | is_null_terminated () |
| static string_base | empty_string () |
| Static Public Member Functions inherited from const_string_range< ITERATOR_TYPE > | |
| template<::i32 cCount, ::i32 wCount, ::i32 u16Count, ::i32 u32Count> | |
| static consteval auto | typed_str_literal (const ::i8(&c)[cCount], const wchar_t(&w)[wCount], const char16_t(&u16)[u16Count], const char32_t(&u32)[u32Count]) |
| template<::comparison::equality< ITEM > EQUALITY> | |
| static constexpr ITERATOR_TYPE | _static_skip_any_character_in (THIS_RANGE range, const THIS_RANGE &rangeBlock, EQUALITY equality) noexcept |
| template<::comparison::equality< ITEM > EQUALITY> | |
| static constexpr ITERATOR_TYPE | static_skip_any_character_in (const THIS_RANGE &range, const THIS_RANGE &rangeBlock, EQUALITY equality) noexcept |
| template<::comparison::equality< ITEM > EQUALITY> | |
| static constexpr ITERATOR_TYPE | _static_rear_skip_any_character_in (THIS_RANGE range, const THIS_RANGE &rangeBlock, EQUALITY equality) noexcept |
| template<::comparison::equality< ITEM > EQUALITY> | |
| static constexpr ITERATOR_TYPE | static_rear_skip_any_character_in (THIS_RANGE range, const THIS_RANGE &rangeBlock, EQUALITY equality) noexcept |
| Static Public Member Functions inherited from range< ITERATOR_TYPE > | |
| static constexpr memsize | item_size () |
| static constexpr bool | _initialize_equals (bool &b, const THIS_RAW_RANGE &range, const THIS_RAW_RANGE &rangeBlock) |
| template<::comparison::equality< ITEM > EQUALITY> | |
| static constexpr bool | _static_equals (THIS_RAW_RANGE range, THIS_RAW_RANGE rangeBlock, EQUALITY equality) |
| template<::comparison::equality< ITEM > EQUALITY> | |
| static constexpr bool | static_equals (const THIS_RAW_RANGE &range, const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) |
| template<::comparison::ordering< ITEM > ORDERING> | |
| static constexpr auto | _static_order (THIS_RAW_RANGE range, THIS_RAW_RANGE rangeBlock, ORDERING ordering) |
| template<::comparison::ordering< ITEM > ORDERING> | |
| static constexpr auto | static_order (const THIS_RAW_RANGE &range, const THIS_RAW_RANGE &rangeBlock, ORDERING ordering) |
| static bool | _initialize_find (const_iterator &p, const THIS_RAW_RANGE &range, const THIS_RAW_RANGE &rangeBlock) |
| template<::comparison::equality< ITEM > EQUALITY> | |
| static const_iterator | _static_find (THIS_RAW_RANGE range, const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) |
| template<::comparison::equality< ITEM > EQUALITY> | |
| static const_iterator | static_find (const THIS_RAW_RANGE &range, const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) |
| static bool | _initialize_rear_find (const_iterator &p, const THIS_RAW_RANGE &range, const THIS_RAW_RANGE &rangeBlock) |
| template<::comparison::equality< ITEM > EQUALITY> | |
| static const_iterator | _static_rear_find (THIS_RAW_RANGE range, const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) |
| template<::comparison::equality< ITEM > EQUALITY> | |
| static const_iterator | static_rear_find (const THIS_RAW_RANGE &range, const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) |
| template<typename ITEM2> | |
| static constexpr bool | _initialize_find_first_character (const_iterator &p, const THIS_RAW_RANGE &range, ITEM2 item) noexcept |
| template<::comparison::equality< ITEM > EQUALITY> | |
| static constexpr const_iterator | _static_find_first_character (THIS_RAW_RANGE range, ITEM item, EQUALITY equality) noexcept |
| template<::comparison::equality< ITEM > EQUALITY> | |
| static constexpr const_iterator | static_find_first_character (const THIS_RAW_RANGE &range, ITEM item, EQUALITY equality) noexcept |
| static constexpr bool | _initialize_find_first_character_in (const_iterator &p, const THIS_RAW_RANGE &range, const THIS_RAW_RANGE &rangeBlock) noexcept |
| template<::comparison::equality< ITEM > EQUALITY> | |
| static constexpr const_iterator | _static_find_first_character_in (THIS_RAW_RANGE range, const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) noexcept |
| template<::comparison::equality< ITEM > EQUALITY> | |
| static constexpr const_iterator | static_find_first_character_in (const THIS_RAW_RANGE &range, const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) noexcept |
| static constexpr bool | _initialize_rear_find_first_character_in (const_iterator &p, const THIS_RAW_RANGE &range, const THIS_RAW_RANGE &rangeBlock) noexcept |
| template<::comparison::equality< ITEM > EQUALITY> | |
| static constexpr const_iterator | _static_rear_find_first_character_in (THIS_RAW_RANGE range, const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) noexcept |
| template<::comparison::equality< ITEM > EQUALITY> | |
| static constexpr const_iterator | static_rear_find_first_character_in (THIS_RAW_RANGE range, const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) noexcept |
| static constexpr bool | _initialize_skip (const_iterator &p, const THIS_RAW_RANGE &range) noexcept |
| template<::comparison::equality< ITEM > EQUALITY> | |
| static constexpr const_iterator | _static_skip (THIS_RAW_RANGE range, ARG_ITEM item, EQUALITY equality) noexcept |
| template<::comparison::equality< ITEM > EQUALITY> | |
| static constexpr const_iterator | static_skip (const THIS_RAW_RANGE &range, ARG_ITEM item, EQUALITY equality) noexcept |
| static constexpr bool | _initialize_rear_skip (const_iterator &p, const THIS_RAW_RANGE &range) noexcept |
| template<::comparison::equality< ITEM > EQUALITY> | |
| static constexpr const_iterator | _static_rear_skip (THIS_RAW_RANGE range, ARG_ITEM item, EQUALITY equality) noexcept |
| template<::comparison::equality< ITEM > EQUALITY> | |
| static constexpr const_iterator | static_rear_skip (const THIS_RAW_RANGE &range, ARG_ITEM item, EQUALITY equality) noexcept |
| static constexpr bool | _initialize_find_item (const_iterator &p, const THIS_RAW_RANGE &range) noexcept |
| static constexpr bool | _initialize_rear_find (const_iterator &p, const THIS_RAW_RANGE &range) noexcept |
| template<::comparison::equality< ITEM > EQUALITY> | |
| static constexpr const_iterator | _static_rear_find (THIS_RAW_RANGE range, ARG_ITEM item, EQUALITY equality) noexcept |
| template<::comparison::equality< ITEM > EQUALITY> | |
| static constexpr const_iterator | static_rear_find (THIS_RAW_RANGE range, ARG_ITEM item, EQUALITY equality) noexcept |
| static constexpr bool | _initialize_contains (bool &b, const THIS_RAW_RANGE &range, const THIS_RAW_RANGE &rangeBlock) noexcept |
| template<::comparison::equality< ITEM > EQUALITY> | |
| static constexpr bool | _static_begins (THIS_RAW_RANGE range, THIS_RAW_RANGE rangeBlock, EQUALITY equality) noexcept |
| template<::comparison::equality< ITEM > EQUALITY> | |
| static constexpr bool | static_begins (const THIS_RAW_RANGE &range, const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) noexcept |
| template<::comparison::equality< ITEM > EQUALITY> | |
| static constexpr bool | _static_ends (THIS_RAW_RANGE range, THIS_RAW_RANGE rangeBlock, EQUALITY equality) noexcept |
| template<::comparison::equality< ITEM > EQUALITY> | |
| static constexpr bool | static_ends (const THIS_RAW_RANGE &range, const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) noexcept |
Additional Inherited Members | |
| Public Attributes inherited from character_range< ITERATOR_TYPE > | |
| BASE_DATA * | m_pbasedata |
| Public Attributes inherited from range< ITERATOR_TYPE > | |
| this_iterator | m_begin |
| this_iterator | m_end |
| enum_range | m_erange |
|
inline |
bit less drafty, more conclusive: t_bWasString template is rather easily, fastly and cheaply deductable, dynamically and more correctly determined by the presence of m_pbasedata draft: all allocation, release and assignment done changed name fork_string to defer_set_size to sound friendlier and convey the idea that probably this->_set_length(lengthNew); should still be called
if this string had heap string storage, checks if old storage can hold new requested size.