ELC in dev
ELC-lang
载入中...
搜索中...
未找到
elc::defs::string_n::string_data_n::base_string_data_t< char_T > 模板结构体 参考abstract
类 elc::defs::string_n::string_data_n::base_string_data_t< char_T > 继承关系图:
[图例]
elc::defs::string_n::string_data_n::base_string_data_t< char_T > 的协作图:
[图例]

Public 类型

typedef base_string_data_t< char_Tthis_t
 
typedef comn_ptr_t< this_tptr_t
 
typedef string_view_t< char_Tstring_view_t
 
typedef char_Tstring_ptr_t
 
typedef const char_Tconst_string_ptr_t
 
typedef compare_t::type< char_Tcompare_type
 

Public 成员函数

 base_string_data_t () noexcept=default
 
 base_string_data_t (never_ref_num_zero_t) noexcept
 
bool is_unique () noexcept
 
virtual void be_replace_as (ptr_t a) noexcept(clear_nothrow)=0
 
virtual ~base_string_data_t () noexcept(destruct_nothrow)=default
 
virtual string_ptr_t get_c_str (ptr_t &) noexcept(get_data_nothrow)
 
virtual const_string_ptr_t get_const_c_str (ptr_t &p) noexcept(get_data_nothrow)
 
virtual const char_Tget_data (ptr_t &p) noexcept(get_data_nothrow)
 
virtual string_ptr_t get_unique_c_str (ptr_t &) noexcept(get_data_nothrow)
 
virtual size_t get_size () noexcept=0
 
virtual ptr_t get_substr_data (size_t begin, size_t size) noexcept
 
virtual ptr_t apply_str_to_begin (string_view_t str) noexcept(copy_construct_nothrow &&apply_data_nothrow)
 
virtual ptr_t apply_str_to_begin (ptr_t str) noexcept(apply_data_nothrow)
 
virtual ptr_t apply_str_to_end (string_view_t str) noexcept(copy_construct_nothrow &&apply_data_nothrow)
 
virtual ptr_t apply_str_to_end (ptr_t str) noexcept(apply_data_nothrow)
 
virtual ptr_t do_insert (size_t pos, string_view_t str) noexcept(copy_construct_nothrow)
 
virtual ptr_t do_insert (size_t pos, ptr_t str) noexcept
 
virtual ptr_t do_erase (size_t pos, size_t size) noexcept
 
virtual ptr_t do_remove_back (size_t size) noexcept(construct_nothrow &&copy_assign_nothrow)
 
virtual ptr_t do_remove_front (size_t size) noexcept(construct_nothrow &&copy_assign_nothrow)
 
virtual ptr_t do_pop_back (size_t size, ptr_t &self) noexcept(construct_nothrow &&copy_assign_nothrow)
 
virtual ptr_t do_pop_front (size_t size, ptr_t &self) noexcept(construct_nothrow &&copy_assign_nothrow)
 
bool equal_with (ptr_t with) noexcept(equal.nothrow< char_T >)
 
bool equal_with_same_size (ptr_t with) noexcept(equal.nothrow< char_T >)
 
bool equal_with (ptr_t with, size_t pos, size_t size) noexcept(equal.nothrow< char_T >)
 
bool equal_with (string_view_t with) noexcept(equal.nothrow< char_T >)
 
bool equal_with (const_string_ptr_t with) noexcept(equal.nothrow< char_T >)
 
compare_type compare_with (ptr_t with) noexcept(compare.nothrow< char_T >)
 
compare_type compare_with_same_size (ptr_t with) noexcept(compare.nothrow< char_T >)
 
compare_type compare_with (ptr_t with, size_t pos, size_t size) noexcept(compare.nothrow< char_T >)
 
compare_type compare_with (string_view_t with) noexcept(compare.nothrow< char_T >)
 
compare_type compare_with (const_string_ptr_t with) noexcept(compare.nothrow< char_T >)
 
virtual char_T arec (size_t index) noexcept(copy_construct_nothrow &&move_construct_nothrow)=0
 
virtual void arec_set (size_t index, char_T a, ptr_t &p) noexcept(copy_assign_nothrow &&move_construct_nothrow)=0
 
hash_t get_hash (ptr_t &p) noexcept(hash_nothrow)
 
hash_t get_others_hash_with_calculated_before (hash_t before, size_t before_size, ptr_t &p, size_t pos, size_t size) noexcept(hash_nothrow)
 
float_size_t get_memory_cost () noexcept
 
float_size_t get_memory_cost_after_gc () noexcept
 
float_size_t get_gc_profit () noexcept
 
bool positive_gc_profit () noexcept
 
virtual const range_n::match_pattern< const char_T > & get_match_pattern_from_self (ptr_t &self) noexcept(copy_assign_nothrow &&move_construct_nothrow)
 
virtual const range_n::reverse_match_pattern< const char_T > & get_reverse_match_pattern_from_self (ptr_t &self) noexcept(copy_assign_nothrow &&move_construct_nothrow)
 
virtual ptr_t pre_alloc_before_begin (size_t size) noexcept
 
virtual ptr_t pre_alloc_after_end (size_t size) noexcept
 
virtual void do_output (text_ostream_t< char_T > &os)
 

静态 Public 属性

static constexpr bool copy_assign_nothrow =copy_assign.nothrow<char_T>
 
static constexpr bool copy_construct_nothrow =copy_construct.nothrow<char_T>
 
static constexpr bool move_construct_nothrow =move_construct.nothrow<char_T>
 
static constexpr bool construct_nothrow =construct<char_T>.nothrow<>
 
static constexpr bool destruct_nothrow =destruct.nothrow<char_T>
 
static constexpr bool clear_nothrow =destruct_nothrow
 
static constexpr bool ptr_reset_nothrow =destruct_nothrow
 
static constexpr bool hash_nothrow =hash.nothrow<char_T>
 
static constexpr bool get_data_nothrow =copy_construct_nothrow&&destruct_nothrow
 
static constexpr bool apply_data_nothrow =construct_nothrow&&copy_assign_nothrow
 

Protected 成员函数

bool same_type (ptr_t a) noexcept
 
virtual bool same_struct (ptr_t) noexcept=0
 
virtual bool same_struct_equal (ptr_t with) noexcept(equal.nothrow< char_T >)=0
 
virtual compare_type same_struct_compare (ptr_t with) noexcept(compare.nothrow< char_T >)=0
 
virtual range_t< const char_T * > get_the_largest_complete_data_block_begin_form (size_t begin) noexcept=0
 
bool default_equal_method (ptr_t with) noexcept(equal.nothrow< char_T >)
 
compare_type default_compare_method (ptr_t with) noexcept(compare.nothrow< char_T >)
 
virtual void copy_part_data_to (char_T *to, size_t pos, size_t size) noexcept(copy_assign_nothrow)=0
 
bool has_hash_cache () noexcept
 
void reset_hash_cache () noexcept
 
hash_t get_hash_cache () noexcept
 
hash_t set_hash_cache (hash_t value) noexcept
 
virtual hash_t get_hash_detail (ptr_t &p) noexcept(hash_nothrow)
 
virtual hash_t get_others_hash_with_calculated_before_detail (hash_t before, size_t before_size, ptr_t &p, size_t pos, size_t size) noexcept(hash_nothrow)
 
void self_changed () noexcept
 
virtual float_size_t get_base_memory_cost () noexcept=0
 

静态 Protected 成员函数

static void be_replace (this_t *a, ptr_t b) noexcept(ptr_reset_nothrow)
 
static void be_replace (ptr_t &a, ptr_t b) noexcept(ptr_reset_nothrow)
 
static void equivalent_optimization (auto &&a, auto &&b) noexcept(ptr_reset_nothrow)
 

Protected 属性

hash_t _hash_cache {}
 
bool _has_hash_cache =false
 

友元

class null_string_data_t< char_T >
 
class constexpr_string_data_t< char_T >
 
class comn_string_data_t< char_T >
 
class substr_string_data_t< char_T >
 
class head_apply_string_data_t< char_T >
 
class end_apply_string_data_t< char_T >
 
class sum_string_data_t< char_T >
 
class erased_string_data_t< char_T >
 
class inserted_string_data_t< char_T >
 
class same_value_compress_string_data_t< char_T >
 

详细描述

template<typename char_T>
struct elc::defs::string_n::string_data_n::base_string_data_t< char_T >

在文件 all_defs.cpp35554 行定义.

成员类型定义说明

◆ compare_type

◆ const_string_ptr_t

◆ ptr_t

◆ string_ptr_t

◆ string_view_t

◆ this_t

构造及析构函数说明

◆ base_string_data_t() [1/2]

template<typename char_T >
elc::defs::string_n::string_data_n::base_string_data_t< char_T >::base_string_data_t ( )
defaultnoexcept

◆ base_string_data_t() [2/2]

在文件 all_defs.cpp35588 行定义.

35588{ attribute_ptr_cast<ref_able>(this)->init_never_ref_num_zero(); }
constexpr T down_cast(U a) noexcept
向下转型至

◆ ~base_string_data_t()

成员函数说明

◆ apply_str_to_begin() [1/2]

◆ apply_str_to_begin() [2/2]

◆ apply_str_to_end() [1/2]

◆ apply_str_to_end() [2/2]

◆ arec()

◆ arec_set()

◆ be_replace() [1/2]

template<typename char_T >
static void elc::defs::string_n::string_data_n::base_string_data_t< char_T >::be_replace ( ptr_t a,
ptr_t  b 
)
inlinestaticprotectednoexcept

在文件 all_defs.cpp35978 行定义.

35978 {
35979 a.do_replace(b);
35980 }

◆ be_replace() [2/2]

template<typename char_T >
static void elc::defs::string_n::string_data_n::base_string_data_t< char_T >::be_replace ( this_t a,
ptr_t  b 
)
inlinestaticprotectednoexcept

在文件 all_defs.cpp35975 行定义.

35975 {
35976 a->be_replace_as(b);
35977 }

◆ be_replace_as()

◆ compare_with() [1/4]

在文件 all_defs.cpp35886 行定义.

35886 {
35887 size_t size=get_size();
35888 size_t index=0;
35890 if(a.begin()==with && with[a.size()]==char_T{})
35891 return strong_ordering::equivalent;
35892 floop{
35893 auto b=with+index;
35894 if(!*b)
35895 return strong_ordering::greater;
35896 size_t step=min({a.size(),size});
35897 if(auto tmp=compare(a.begin(),step,just_an_part,b,end_by_zero); tmp!=0)
35898 return tmp;
35899 index+=step;
35900 size-=step;
35901 if(a.size()==step)
35903 else
35904 a={a.begin()+step,note::size(a.size()-step)};
35905 if(!a.size())
35906 return *(with+index)==char_T{}? strong_ordering::equivalent:
35907 strong_ordering::less;
35908 if(!*(with+index))
35909 return strong_ordering::greater;
35910 }
35911 }
#define floop
Definition all_defs.cpp:543
constexpr size_t size(::size_t v)
constexpr struct elc::defs::base::compare_t compare
constexpr struct elc::defs::base::just_an_part_t just_an_part
constexpr struct elc::defs::base::min_t min
constexpr struct elc::defs::base::end_by_zero_t end_by_zero
virtual range_t< const char_T * > get_the_largest_complete_data_block_begin_form(size_t begin) noexcept=0

◆ compare_with() [2/4]

在文件 all_defs.cpp35806 行定义.

35806 {
35807 //eq->equal优化
35808 if(this==with)
35809 return strong_ordering::equivalent;
35810 //size比较优化
35811 {
35812 auto scom=compare(this->get_size(),with->get_size());
35813 if(scom!=0)
35814 return scom;
35815 }
35816 //快速比较结束,实际比较段
35817 return base_compare_with(with);
35818 }

◆ compare_with() [3/4]

template<typename char_T >
compare_type elc::defs::string_n::string_data_n::base_string_data_t< char_T >::compare_with ( ptr_t  with,
size_t  pos,
size_t  size 
)
inlinenoexcept

在文件 all_defs.cpp35833 行定义.

35833 {
35834 //eq->equal优化
35835 if(this==with)
35836 return strong_ordering::equivalent;
35837 size_t index=pos;
35839 auto b=with->get_the_largest_complete_data_block_begin_form(index);
35840 while(size){
35841 const size_t step=min({a.size(),b.size(),size});
35842 if(a.begin()!=b.begin())//起始地址不同时才需要真的比较
35843 if(auto tmp=compare(a.begin(),b.begin(),step); tmp!=0)
35844 return tmp;
35845 index+=step;
35846 size-=step;
35847 if(a.size()==step)
35849 else
35850 a={a.begin()+step,note::size(a.size()-step)};
35851 if(b.size()==step)
35852 b=with->get_the_largest_complete_data_block_begin_form(index);
35853 else
35854 b={b.begin()+step,note::size(b.size()-step)};
35855 if(!a.size()||!b.size())
35856 return a.size()<=>b.size();
35857 }
35858 return strong_ordering::equivalent;
35859 }

◆ compare_with() [4/4]

在文件 all_defs.cpp35860 行定义.

35860 {
35861 size_t size=with.size();
35862 size_t index=0;
35863 {
35864 auto scom=compare(this->get_size(),size);
35865 if(scom!=0)
35866 return scom;
35867 }
35869 if(a.begin()==with.begin() && a.size()==with.size())
35870 return strong_ordering::equivalent;
35871 floop{
35872 auto b=with.begin()+index;
35873 size_t step=min({a.size(),with.size()-index,size});
35874 if(auto tmp=compare(a.begin(),b,step); tmp!=0)
35875 return tmp;
35876 index+=step;
35877 size-=step;
35878 if(a.size()==step)
35880 else
35881 a={a.begin()+step,note::size(a.size()-step)};
35882 if(!a.size()||!size)
35883 return a.size()<=>size;
35884 }
35885 }

◆ compare_with_same_size()

template<typename char_T >
compare_type elc::defs::string_n::string_data_n::base_string_data_t< char_T >::compare_with_same_size ( ptr_t  with)
inlinenoexcept

在文件 all_defs.cpp35819 行定义.

35819 {
35820 //eq->equal优化
35821 if(this==with)
35822 return strong_ordering::equivalent;
35823 //size比较优化被移除
35824 //快速比较结束,实际比较段
35825 return base_compare_with(with);
35826 }

◆ copy_part_data_to()

◆ default_compare_method()

template<typename char_T >
compare_type elc::defs::string_n::string_data_n::base_string_data_t< char_T >::default_compare_method ( ptr_t  with)
inlineprotectednoexcept

在文件 all_defs.cpp35828 行定义.

35828 {
35829 const size_t self_size=get_size();
35830 return compare_with(with,0,self_size);
35831 }
compare_type compare_with(ptr_t with) noexcept(compare.nothrow< char_T >)

◆ default_equal_method()

template<typename char_T >
bool elc::defs::string_n::string_data_n::base_string_data_t< char_T >::default_equal_method ( ptr_t  with)
inlineprotectednoexcept

在文件 all_defs.cpp35707 行定义.

35707 {
35708 const size_t self_size=get_size();
35709 return equal_with(with,0,self_size);
35710 }
bool equal_with(ptr_t with) noexcept(equal.nothrow< char_T >)

◆ do_erase()

template<typename char_T >
base_string_data_t< char_T >::ptr_t elc::defs::string_n::string_data_n::base_string_data_t< char_T >::do_erase ( size_t  pos,
size_t  size 
)
virtualnoexcept

◆ do_insert() [1/2]

template<typename char_T >
base_string_data_t< char_T >::ptr_t elc::defs::string_n::string_data_n::base_string_data_t< char_T >::do_insert ( size_t  pos,
ptr_t  str 
)
virtualnoexcept

elc::defs::string_n::string_data_n::null_string_data_t< char_T > 重载.

在文件 all_defs.cpp38369 行定义.

38369 {
38370 return get<inserted_string_data_t<char_T>>(this,str,pos);
38371}

◆ do_insert() [2/2]

elc::defs::string_n::string_data_n::null_string_data_t< char_T >, elc::defs::string_n::string_data_n::head_apply_string_data_t< char_T >, elc::defs::string_n::string_data_n::end_apply_string_data_t< char_T > , 以及 elc::defs::string_n::string_data_n::inserted_string_data_t< char_T > 重载.

在文件 all_defs.cpp38373 行定义.

38373 {
38374 if(pos==0)
38375 return this->apply_str_to_begin(str);
38376 elseif(pos==get_size())
38378 else
38379 return this->do_insert(pos,get<comn_string_data_t<char_T>>(str));
38380}
else
#define elseif
Definition all_defs.cpp:650
virtual ptr_t do_insert(size_t pos, string_view_t str) noexcept(copy_construct_nothrow)
virtual ptr_t apply_str_to_end(string_view_t str) noexcept(copy_construct_nothrow &&apply_data_nothrow)
virtual ptr_t apply_str_to_begin(string_view_t str) noexcept(copy_construct_nothrow &&apply_data_nothrow)

◆ do_output()

在文件 all_defs.cpp35994 行定义.

35994 {
35995 size_t index=0;
35997 while(a.size()){
35998 os.write(a.begin(),a.size());
35999 index+=a.size();
36001 }
36002 }
函数调用图:

◆ do_pop_back()

◆ do_pop_front()

◆ do_remove_back()

◆ do_remove_front()

◆ equal_with() [1/4]

在文件 all_defs.cpp35762 行定义.

35762 {
35763 size_t size=get_size();
35764 size_t index=0;
35766 if(a.begin()==with && with[a.size()]==char_T{})
35767 return true;
35768 floop{
35769 auto b=with+index;
35770 if(!*b)
35771 return false;
35772 const size_t step=min({a.size(),size});
35773 if(!equal(a.begin(),step,just_an_part,b,end_by_zero))
35774 return false;
35775 index+=step;
35776 size-=step;
35777 if(a.size()==step)
35779 else
35780 a={a.begin()+step,note::size(a.size()-step)};
35781 if(!*(b+step))
35782 return !a.size();
35783 if(!a.size())
35784 return !*(b+step);
35785 }
35786 }
constexpr struct elc::defs::base::equal_t equal

◆ equal_with() [2/4]

template<typename char_T >
bool elc::defs::string_n::string_data_n::base_string_data_t< char_T >::equal_with ( ptr_t  with)
inlinenoexcept

在文件 all_defs.cpp35680 行定义.

35680 {
35681 //eq->equal优化
35682 if(this==with)
35683 return true;
35684 //hash_diff->not_equal优化
35685 if(this->has_hash_cache()&&with->has_hash_cache())
35686 if(this->get_hash_cache()!=with->get_hash_cache())
35687 return false;
35688 //size比较优化
35689 if(this->get_size()!=with->get_size())
35690 return false;
35691 //快速比较结束,实际比较段
35692 return base_equal_with(with);
35693 }

◆ equal_with() [3/4]

template<typename char_T >
bool elc::defs::string_n::string_data_n::base_string_data_t< char_T >::equal_with ( ptr_t  with,
size_t  pos,
size_t  size 
)
inlinenoexcept

在文件 all_defs.cpp35712 行定义.

35712 {
35713 //eq->equal优化
35714 if(this==with)
35715 return true;
35716 size_t index=pos;
35718 auto b=with->get_the_largest_complete_data_block_begin_form(index);
35719 while(size){
35720 const size_t step=min({a.size(),b.size(),size});
35721 if(a.begin()!=b.begin())//起始地址不同时才需要真的比较
35722 if(!equal(a.begin(),b.begin(),step))
35723 return false;
35724 index+=step;
35725 size-=step;
35726 if(a.size()==step)
35728 else
35729 a={a.begin()+step,note::size(a.size()-step)};
35730 if(b.size()==step)
35731 b=with->get_the_largest_complete_data_block_begin_form(index);
35732 else
35733 b={b.begin()+step,note::size(b.size()-step)};
35734 if(!a.size()&&!b.size())
35735 return a.size()==b.size();
35736 }
35737 return true;
35738 }

◆ equal_with() [4/4]

在文件 all_defs.cpp35739 行定义.

35739 {
35740 size_t size=with.size();
35741 size_t index=0;
35742 if(this->get_size()!=with.size())
35743 return false;
35745 if(a.begin()==with.begin() && a.size()==with.size())
35746 return true;
35747 floop{
35748 auto b=with.begin()+index;
35749 const size_t step=min({a.size(),with.size()-index,size});
35750 if(!equal(a.begin(),b,step))
35751 return false;
35752 index+=step;
35753 size-=step;
35754 if(a.size()==step)
35756 else
35757 a={a.begin()+step,note::size(a.size()-step)};
35758 if(!a.size()||!size)
35759 return a.size()==size;
35760 }
35761 }

◆ equal_with_same_size()

template<typename char_T >
bool elc::defs::string_n::string_data_n::base_string_data_t< char_T >::equal_with_same_size ( ptr_t  with)
inlinenoexcept

在文件 all_defs.cpp35694 行定义.

35694 {
35695 //eq->equal优化
35696 if(this==with)
35697 return true;
35698 //hash_diff->not_equal优化
35699 if(this->has_hash_cache()&&with->has_hash_cache())
35700 if(this->get_hash_cache()!=with->get_hash_cache())
35701 return false;
35702 //size比较优化被移除
35703 //快速比较结束,实际比较段
35704 return base_equal_with(with);
35705 }

◆ equivalent_optimization()

template<typename char_T >
static void elc::defs::string_n::string_data_n::base_string_data_t< char_T >::equivalent_optimization ( auto &&  a,
auto &&  b 
)
inlinestaticprotectednoexcept

在文件 all_defs.cpp35981 行定义.

35981 {
35982 if(a->get_memory_cost() >= b->get_memory_cost())
35983 be_replace(a,b);
35984 else
35985 be_replace(b,a);
35986 }
static void be_replace(this_t *a, ptr_t b) noexcept(ptr_reset_nothrow)

◆ get_base_memory_cost()

◆ get_c_str()

◆ get_const_c_str()

◆ get_data()

◆ get_gc_profit()

◆ get_hash()

在文件 all_defs.cpp35925 行定义.

35925 {
35926 if(has_hash_cache())
35927 return get_hash_cache();
35928 else{
35929 const auto tmp=this->get_hash_detail(p);
35930 return p->set_hash_cache(tmp);
35931 }
35932 }
virtual hash_t get_hash_detail(ptr_t &p) noexcept(hash_nothrow)

◆ get_hash_cache()

template<typename char_T >
hash_t elc::defs::string_n::string_data_n::base_string_data_t< char_T >::get_hash_cache ( )
inlineprotectednoexcept

◆ get_hash_detail()

◆ get_match_pattern_from_self()

template<typename char_T >
const range_n::match_pattern< const char_T > & elc::defs::string_n::string_data_n::base_string_data_t< char_T >::get_match_pattern_from_self ( ptr_t self)
virtualnoexcept

elc::defs::string_n::string_data_n::constexpr_string_data_t< char_T > , 以及 elc::defs::string_n::string_data_n::comn_string_data_t< char_T > 重载.

在文件 all_defs.cpp36435 行定义.

36435 {
36438 return comn_data->get_match_pattern_from_self(self);
36439}
函数调用图:
这是这个函数的调用关系图:

◆ get_memory_cost()

在文件 all_defs.cpp35955 行定义.

35955 {
35956 return get_base_memory_cost()/get_ref_num(this);
35957 }
link_num_t get_ref_num(const T *a) noexcept
virtual float_size_t get_base_memory_cost() noexcept=0

◆ get_memory_cost_after_gc()

template<typename char_T >
float_size_t elc::defs::string_n::string_data_n::base_string_data_t< char_T >::get_memory_cost_after_gc ( )
noexcept

在文件 all_defs.cpp36429 行定义.

36429 {
36430 const auto size_of_base_array=this->get_size()*sizeof(char_T);
36432 return size/get_ref_num(this);
36433}
#define float_size_of(...)
Definition all_defs.cpp:576

◆ get_others_hash_with_calculated_before()

template<typename char_T >
hash_t elc::defs::string_n::string_data_n::base_string_data_t< char_T >::get_others_hash_with_calculated_before ( hash_t  before,
size_t  before_size,
ptr_t p,
size_t  pos,
size_t  size 
)
inlinenoexcept

在文件 all_defs.cpp35940 行定义.

35940 {
35941 if(pos==0&&size==get_size())
35942 return hash.merge_array_hash_results(before,before_size,get_hash(p),size);
35944 }
hash_t get_hash(ptr_t &p) noexcept(hash_nothrow)
virtual hash_t get_others_hash_with_calculated_before_detail(hash_t before, size_t before_size, ptr_t &p, size_t pos, size_t size) noexcept(hash_nothrow)

◆ get_others_hash_with_calculated_before_detail()

◆ get_reverse_match_pattern_from_self()

template<typename char_T >
const range_n::reverse_match_pattern< const char_T > & elc::defs::string_n::string_data_n::base_string_data_t< char_T >::get_reverse_match_pattern_from_self ( ptr_t self)
virtualnoexcept

elc::defs::string_n::string_data_n::constexpr_string_data_t< char_T > , 以及 elc::defs::string_n::string_data_n::comn_string_data_t< char_T > 重载.

在文件 all_defs.cpp36441 行定义.

36441 {
36444 return comn_data->get_reverse_match_pattern_from_self(self);
36445}
函数调用图:
这是这个函数的调用关系图:

◆ get_size()

◆ get_substr_data()

◆ get_the_largest_complete_data_block_begin_form()

◆ get_unique_c_str()

elc::defs::string_n::string_data_n::comn_string_data_t< char_T > 重载.

在文件 all_defs.cpp36419 行定义.

36419 {
36421 a=comn_data;
36422 return comn_data->get_c_str(a);
36423}

◆ has_hash_cache()

template<typename char_T >
bool elc::defs::string_n::string_data_n::base_string_data_t< char_T >::has_hash_cache ( )
inlineprotectednoexcept

◆ is_unique()

在文件 all_defs.cpp35590 行定义.

35590{ return get_ref_num(this)==1; }

◆ positive_gc_profit()

template<typename char_T >
bool elc::defs::string_n::string_data_n::base_string_data_t< char_T >::positive_gc_profit ( )
inlinenoexcept

在文件 all_defs.cpp35960 行定义.

35960{return get_gc_profit() > 0;}

◆ pre_alloc_after_end()

template<typename char_T >
base_string_data_t< char_T >::ptr_t elc::defs::string_n::string_data_n::base_string_data_t< char_T >::pre_alloc_after_end ( size_t  size)
virtualnoexcept

elc::defs::string_n::string_data_n::end_apply_string_data_t< char_T > 重载.

在文件 all_defs.cpp37403 行定义.

37403 {
37404 if(size)
37406 else
37407 return this;
37408}
constexpr struct elc::defs::base::pre_alloc_t pre_alloc

◆ pre_alloc_before_begin()

template<typename char_T >
base_string_data_t< char_T >::ptr_t elc::defs::string_n::string_data_n::base_string_data_t< char_T >::pre_alloc_before_begin ( size_t  size)
virtualnoexcept

elc::defs::string_n::string_data_n::head_apply_string_data_t< char_T > 重载.

在文件 all_defs.cpp37040 行定义.

37040 {
37041 if(size)
37043 else
37044 return this;
37045}

◆ reset_hash_cache()

template<typename char_T >
void elc::defs::string_n::string_data_n::base_string_data_t< char_T >::reset_hash_cache ( )
inlineprotectednoexcept

在文件 all_defs.cpp35921 行定义.

35921{_has_hash_cache=false;}

◆ same_struct()

◆ same_struct_compare()

◆ same_struct_equal()

◆ same_type()

template<typename char_T >
bool elc::defs::string_n::string_data_n::base_string_data_t< char_T >::same_type ( ptr_t  a)
inlineprotectednoexcept

在文件 all_defs.cpp35655 行定义.

35655{return typeid(*this)==typeid(*a);}

◆ self_changed()

template<typename char_T >
void elc::defs::string_n::string_data_n::base_string_data_t< char_T >::self_changed ( )
inlineprotectednoexcept

在文件 all_defs.cpp35950 行定义.

◆ set_hash_cache()

template<typename char_T >
hash_t elc::defs::string_n::string_data_n::base_string_data_t< char_T >::set_hash_cache ( hash_t  value)
inlineprotectednoexcept

在文件 all_defs.cpp35923 行定义.

35923{_has_hash_cache=true;return _hash_cache=value;}

友元及相关函数文档

◆ comn_string_data_t< char_T >

在文件 all_defs.cpp35573 行定义.

◆ constexpr_string_data_t< char_T >

在文件 all_defs.cpp35573 行定义.

◆ end_apply_string_data_t< char_T >

在文件 all_defs.cpp35573 行定义.

◆ erased_string_data_t< char_T >

在文件 all_defs.cpp35573 行定义.

◆ head_apply_string_data_t< char_T >

在文件 all_defs.cpp35573 行定义.

◆ inserted_string_data_t< char_T >

在文件 all_defs.cpp35573 行定义.

◆ null_string_data_t< char_T >

在文件 all_defs.cpp35573 行定义.

◆ same_value_compress_string_data_t< char_T >

在文件 all_defs.cpp35573 行定义.

◆ substr_string_data_t< char_T >

在文件 all_defs.cpp35573 行定义.

◆ sum_string_data_t< char_T >

在文件 all_defs.cpp35573 行定义.

类成员变量说明

◆ _has_hash_cache

在文件 all_defs.cpp35919 行定义.

◆ _hash_cache

在文件 all_defs.cpp35918 行定义.

35918{};

◆ apply_data_nothrow

◆ clear_nothrow

在文件 all_defs.cpp35569 行定义.

◆ construct_nothrow

template<typename char_T >
constexpr bool elc::defs::string_n::string_data_n::base_string_data_t< char_T >::construct_nothrow =construct<char_T>.nothrow<>
staticconstexpr

在文件 all_defs.cpp35567 行定义.

◆ copy_assign_nothrow

template<typename char_T >
constexpr bool elc::defs::string_n::string_data_n::base_string_data_t< char_T >::copy_assign_nothrow =copy_assign.nothrow<char_T>
staticconstexpr

在文件 all_defs.cpp35564 行定义.

◆ copy_construct_nothrow

template<typename char_T >
constexpr bool elc::defs::string_n::string_data_n::base_string_data_t< char_T >::copy_construct_nothrow =copy_construct.nothrow<char_T>
staticconstexpr

在文件 all_defs.cpp35565 行定义.

◆ destruct_nothrow

template<typename char_T >
constexpr bool elc::defs::string_n::string_data_n::base_string_data_t< char_T >::destruct_nothrow =destruct.nothrow<char_T>
staticconstexpr

在文件 all_defs.cpp35568 行定义.

◆ get_data_nothrow

◆ hash_nothrow

template<typename char_T >
constexpr bool elc::defs::string_n::string_data_n::base_string_data_t< char_T >::hash_nothrow =hash.nothrow<char_T>
staticconstexpr

在文件 all_defs.cpp35571 行定义.

◆ move_construct_nothrow

template<typename char_T >
constexpr bool elc::defs::string_n::string_data_n::base_string_data_t< char_T >::move_construct_nothrow =move_construct.nothrow<char_T>
staticconstexpr

在文件 all_defs.cpp35566 行定义.

◆ ptr_reset_nothrow

在文件 all_defs.cpp35570 行定义.


该结构体的文档由以下文件生成: