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

Public 类型

typedef constexpr_string_data_t< char_Tthis_t
 
typedef base_string_data_t< char_Tbase_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
 
- Public 类型 继承自 elc::defs::string_n::string_data_n::base_string_data_t< char_T >
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 成员函数

void clear_match_pattern () noexcept
 
 constexpr_string_data_t (const constexpr_str_t< char_T > &str) noexcept
 
 constexpr_string_data_t (string_view_t str) noexcept
 
virtual ~constexpr_string_data_t () noexcept(destruct_nothrow) override final
 
virtual ptr_t get_substr_data (size_t begin, size_t size) noexcept override final
 
virtual const char_Tget_data (ptr_t &) noexcept(get_data_nothrow) override final
 
virtual const_string_ptr_t get_const_c_str (ptr_t &p) noexcept(get_data_nothrow) override final
 
virtual size_t get_size () noexcept override final
 
virtual char_T arec (size_t index) noexcept(copy_construct_nothrow &&move_construct_nothrow) override final
 
virtual void be_replace_as (ptr_t a) noexcept(clear_nothrow) override final
 
virtual void arec_set (size_t index, char_T a, ptr_t &p) noexcept override final
 
virtual bool same_struct (ptr_t with) noexcept override final
 
virtual range_t< const char_T * > get_the_largest_complete_data_block_begin_form (size_t begin) noexcept override final
 
virtual bool same_struct_equal (ptr_t with) noexcept(equal.nothrow< char_T >) override final
 
virtual base_t::compare_type same_struct_compare (ptr_t with) noexcept(compare.nothrow< char_T >) override final
 
virtual const range_n::match_pattern< const char_T > & get_match_pattern_from_self (ptr_t &self) noexcept(copy_assign_nothrow &&move_construct_nothrow) override final
 
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) override final
 
hash_t set_hash_cache (hash_t value) noexcept
 
- Public 成员函数 继承自 elc::defs::string_n::string_data_n::base_string_data_t< char_T >
 base_string_data_t () noexcept=default
 
 base_string_data_t (never_ref_num_zero_t) noexcept
 
bool is_unique () noexcept
 
virtual ~base_string_data_t () noexcept(destruct_nothrow)=default
 
virtual string_ptr_t get_c_str (ptr_t &) noexcept(get_data_nothrow)
 
virtual string_ptr_t get_unique_c_str (ptr_t &) noexcept(get_data_nothrow)
 
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 >)
 
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 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 属性

const char_T_m
 
size_t _size
 
const range_n::match_pattern< const char_T > * _p_match_pattern = nullptr
 
const range_n::reverse_match_pattern< const char_T > * _p_reverse_match_pattern = nullptr
 
bool match_pattern_by_get = 0
 

静态 Public 属性

static constexpr bool copy_assign_nothrow
 
static constexpr bool copy_construct_nothrow
 
static constexpr bool move_construct_nothrow
 
static constexpr bool construct_nothrow
 
static constexpr bool destruct_nothrow
 
static constexpr bool clear_nothrow
 
static constexpr bool ptr_reset_nothrow
 
static constexpr bool hash_nothrow
 
static constexpr bool get_data_nothrow
 
static constexpr bool apply_data_nothrow
 
- 静态 Public 属性 继承自 elc::defs::string_n::string_data_n::base_string_data_t< char_T >
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 成员函数

virtual void copy_part_data_to (char_T *to, size_t pos, size_t size) noexcept(copy_assign_nothrow) override final
 
virtual float_size_t get_base_memory_cost () noexcept override final
 
- Protected 成员函数 继承自 elc::defs::string_n::string_data_n::base_string_data_t< char_T >
bool same_type (ptr_t a) noexcept
 
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 >)
 
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
 

额外继承的成员函数

- 静态 Protected 成员函数 继承自 elc::defs::string_n::string_data_n::base_string_data_t< char_T >
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 属性 继承自 elc::defs::string_n::string_data_n::base_string_data_t< char_T >
hash_t _hash_cache {}
 
bool _has_hash_cache =false
 

详细描述

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

在文件 all_defs.cpp36141 行定义.

成员类型定义说明

◆ base_t

◆ const_string_ptr_t

◆ ptr_t

◆ string_ptr_t

◆ string_view_t

◆ this_t

构造及析构函数说明

◆ constexpr_string_data_t() [1/2]

template<typename char_T >
elc::defs::string_n::string_data_n::constexpr_string_data_t< char_T >::constexpr_string_data_t ( const constexpr_str_t< char_T > &  str)
inlinenoexcept

在文件 all_defs.cpp36177 行定义.

36177 {
36178 _m=str.begin();
36179 _size=str.size();
36180 set_hash_cache(hash(str));
36184 }
#define hash
constexpr match_pattern(const array_like_view_t< T > &pattern) noexcept
constexpr reverse_match_pattern(const array_like_view_t< T > &pattern) noexcept
const range_n::match_pattern< const char_T > * _p_match_pattern
const range_n::reverse_match_pattern< const char_T > * _p_reverse_match_pattern
函数调用图:

◆ constexpr_string_data_t() [2/2]

template<typename char_T >
elc::defs::string_n::string_data_n::constexpr_string_data_t< char_T >::constexpr_string_data_t ( string_view_t  str)
inlinenoexcept

在文件 all_defs.cpp36185 行定义.

36185 {
36186 _m=str.begin();
36187 _size=str.size();
36188 if(!_size)
36189 be_replace_as(null_ptr);
36190 }
virtual void be_replace_as(ptr_t a) noexcept(clear_nothrow) override final
函数调用图:

◆ ~constexpr_string_data_t()

在文件 all_defs.cpp36191 行定义.

成员函数说明

◆ arec()

template<typename char_T >
virtual char_T elc::defs::string_n::string_data_n::constexpr_string_data_t< char_T >::arec ( size_t  index)
inlinefinaloverridevirtualnoexcept

实现了 elc::defs::string_n::string_data_n::base_string_data_t< char_T >.

在文件 all_defs.cpp36209 行定义.

36209{ return _m[index]; }

◆ arec_set()

template<typename char_T >
virtual void elc::defs::string_n::string_data_n::constexpr_string_data_t< char_T >::arec_set ( size_t  index,
char_T  a,
ptr_t p 
)
inlinefinaloverridevirtualnoexcept

实现了 elc::defs::string_n::string_data_n::base_string_data_t< char_T >.

在文件 all_defs.cpp36212 行定义.

36212{base_t::arec_set(index,a,p);}
constexpr T down_cast(U a) noexcept
向下转型至
virtual void arec_set(size_t index, char_T a, ptr_t &p) noexcept(copy_assign_nothrow &&move_construct_nothrow)=0

◆ be_replace_as()

template<typename char_T >
virtual void elc::defs::string_n::string_data_n::constexpr_string_data_t< char_T >::be_replace_as ( ptr_t  a)
inlinefinaloverridevirtualnoexcept

◆ clear_match_pattern()

template<typename char_T >
void elc::defs::string_n::string_data_n::constexpr_string_data_t< char_T >::clear_match_pattern ( )
inlinenoexcept

在文件 all_defs.cpp36168 行定义.

36168 {
36172 _p_match_pattern = nullptr;
36173 _p_reverse_match_pattern = nullptr;
36174 }
36175 }
constexpr T & remove_const(const T &a) noexcept
对引用移除const
constexpr struct elc::defs::memory::get_n::unget_t unget
函数调用图:

◆ copy_part_data_to()

template<typename char_T >
virtual void elc::defs::string_n::string_data_n::constexpr_string_data_t< char_T >::copy_part_data_to ( char_T to,
size_t  pos,
size_t  size 
)
inlinefinaloverrideprotectedvirtualnoexcept

实现了 elc::defs::string_n::string_data_n::base_string_data_t< char_T >.

在文件 all_defs.cpp36207 行定义.

constexpr size_t size(::size_t v)
constexpr to_t< T > to(T v)
constexpr from_t< T > from(T v)
constexpr struct elc::defs::memory::lifetime_n::copy_assign_t copy_assign

◆ get_base_memory_cost()

template<typename char_T >
virtual float_size_t elc::defs::string_n::string_data_n::constexpr_string_data_t< char_T >::get_base_memory_cost ( )
inlinefinaloverrideprotectedvirtualnoexcept

实现了 elc::defs::string_n::string_data_n::base_string_data_t< char_T >.

在文件 all_defs.cpp36231 行定义.

36231 {
36232 return float_size_of(*this);
36233 }
#define float_size_of(...)
Definition all_defs.cpp:576

◆ get_const_c_str()

template<typename char_T >
virtual const_string_ptr_t elc::defs::string_n::string_data_n::constexpr_string_data_t< char_T >::get_const_c_str ( ptr_t p)
inlinefinaloverridevirtualnoexcept

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

在文件 all_defs.cpp36199 行定义.

36199 {
36200 if(!_m[_size])
36201 return _m;
36202 else
36203 return base_t::get_const_c_str(p);
36204 }
virtual const_string_ptr_t get_const_c_str(ptr_t &p) noexcept(get_data_nothrow)

◆ get_data()

template<typename char_T >
virtual const char_T * elc::defs::string_n::string_data_n::constexpr_string_data_t< char_T >::get_data ( ptr_t )
inlinefinaloverridevirtualnoexcept

◆ get_match_pattern_from_self()

template<typename char_T >
virtual const range_n::match_pattern< const char_T > & elc::defs::string_n::string_data_n::constexpr_string_data_t< char_T >::get_match_pattern_from_self ( ptr_t self)
inlinefinaloverridevirtualnoexcept

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

在文件 all_defs.cpp36235 行定义.

36235 {
36236 if(!_p_match_pattern){
36239 }
36240 return *_p_match_pattern;
36241 }
virtual const char_T * get_data(ptr_t &) noexcept(get_data_nothrow) override final
virtual size_t get_size() noexcept override final

◆ get_reverse_match_pattern_from_self()

template<typename char_T >
virtual const range_n::reverse_match_pattern< const char_T > & elc::defs::string_n::string_data_n::constexpr_string_data_t< char_T >::get_reverse_match_pattern_from_self ( ptr_t self)
inlinefinaloverridevirtualnoexcept

◆ get_size()

template<typename char_T >
virtual size_t elc::defs::string_n::string_data_n::constexpr_string_data_t< char_T >::get_size ( )
inlinefinaloverridevirtualnoexcept

实现了 elc::defs::string_n::string_data_n::base_string_data_t< char_T >.

在文件 all_defs.cpp36205 行定义.

36205{ return _size; }

◆ get_substr_data()

template<typename char_T >
virtual ptr_t elc::defs::string_n::string_data_n::constexpr_string_data_t< char_T >::get_substr_data ( size_t  begin,
size_t  size 
)
inlinefinaloverridevirtualnoexcept

◆ get_the_largest_complete_data_block_begin_form()

template<typename char_T >
virtual range_t< const char_T * > elc::defs::string_n::string_data_n::constexpr_string_data_t< char_T >::get_the_largest_complete_data_block_begin_form ( size_t  begin)
inlinefinaloverridevirtualnoexcept

实现了 elc::defs::string_n::string_data_n::base_string_data_t< char_T >.

在文件 all_defs.cpp36217 行定义.

36217{return{&_m[begin],note::size(_size-begin)};}

◆ same_struct()

template<typename char_T >
virtual bool elc::defs::string_n::string_data_n::constexpr_string_data_t< char_T >::same_struct ( ptr_t  with)
inlinefinaloverridevirtualnoexcept

实现了 elc::defs::string_n::string_data_n::base_string_data_t< char_T >.

在文件 all_defs.cpp36214 行定义.

36214 {
36215 return true;//总size被保证一样
36216 }

◆ same_struct_compare()

template<typename char_T >
virtual base_t::compare_type elc::defs::string_n::string_data_n::constexpr_string_data_t< char_T >::same_struct_compare ( ptr_t  with)
inlinefinaloverridevirtualnoexcept

实现了 elc::defs::string_n::string_data_n::base_string_data_t< char_T >.

在文件 all_defs.cpp36224 行定义.

36224 {
36225 auto wp=down_cast<this_t*>(with.get());
36226 if(_m==wp->_m)
36227 return strong_ordering::equivalent;
36228 return compare(_m,wp->_m,_size);
36229 }
constexpr struct elc::defs::base::compare_t compare

◆ same_struct_equal()

template<typename char_T >
virtual bool elc::defs::string_n::string_data_n::constexpr_string_data_t< char_T >::same_struct_equal ( ptr_t  with)
inlinefinaloverridevirtualnoexcept

实现了 elc::defs::string_n::string_data_n::base_string_data_t< char_T >.

在文件 all_defs.cpp36218 行定义.

36218 {
36219 auto wp=down_cast<this_t*>(with.get());
36220 if(_m==wp->_m)
36221 return true;
36222 return equal(_m,wp->_m,_size);
36223 }
constexpr struct elc::defs::base::equal_t equal

◆ set_hash_cache()

类成员变量说明

◆ _m

◆ _p_match_pattern

◆ _p_reverse_match_pattern

◆ _size

◆ apply_data_nothrow

在文件 all_defs.cpp35573 行定义.

◆ clear_nothrow

在文件 all_defs.cpp35569 行定义.

◆ construct_nothrow

在文件 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
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
staticconstexpr

在文件 all_defs.cpp35565 行定义.

◆ destruct_nothrow

在文件 all_defs.cpp35568 行定义.

◆ get_data_nothrow

在文件 all_defs.cpp35572 行定义.

◆ hash_nothrow

在文件 all_defs.cpp35571 行定义.

◆ match_pattern_by_get

在文件 all_defs.cpp36166 行定义.

◆ 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
staticconstexpr

在文件 all_defs.cpp35566 行定义.

◆ ptr_reset_nothrow

在文件 all_defs.cpp35570 行定义.


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