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

Public 类型

typedef comn_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
 
void self_changed () noexcept
 
 comn_string_data_t (string_view_t str) noexcept(construct_nothrow &&copy_assign_nothrow)
 
 comn_string_data_t (ptr_t str) noexcept(construct_nothrow &&copy_assign_nothrow)
 
 comn_string_data_t (ptr_t str, size_t pos, size_t size) noexcept(construct_nothrow &&copy_assign_nothrow)
 
 comn_string_data_t (size_t size, char_T ch) noexcept(construct_nothrow &&copy_assign_nothrow)
 
 comn_string_data_t (size_t size) noexcept(construct_nothrow &&copy_assign_nothrow)
 
 comn_string_data_t (array_t< char_T > base) noexcept(construct_nothrow &&copy_assign_nothrow)
 
virtual ~comn_string_data_t () noexcept(destruct_nothrow) override final
 
virtual void be_replace_as (ptr_t a) noexcept(clear_nothrow) override final
 
virtual string_ptr_t get_c_str (ptr_t &) noexcept override final
 
virtual string_ptr_t get_unique_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 arec_set (size_t index, char_T a, ptr_t &p) noexcept(copy_assign_nothrow &&move_construct_nothrow) override final
 
virtual bool same_struct (ptr_t) 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
 
void self_changed () noexcept
 
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 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 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 >)
 
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 属性

array_t< char_T_m
 
range_n::match_pattern< const char_T > * _p_match_pattern = nullptr
 
range_n::reverse_match_pattern< const char_T > * _p_reverse_match_pattern = nullptr
 

静态 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::comn_string_data_t< char_T >

在文件 all_defs.cpp36287 行定义.

成员类型定义说明

◆ base_t

◆ const_string_ptr_t

◆ ptr_t

◆ string_ptr_t

◆ string_view_t

◆ this_t

构造及析构函数说明

◆ comn_string_data_t() [1/6]

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

在文件 all_defs.cpp36329 行定义.

36329 :_m(note::size(str.size()+1)){
36330 copy_assign[str.size()](note::from(str.begin()),note::to(_m.data()));
36331 _m[str.size()]=zero;
36332 }
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::base::zero_t zero
constexpr struct elc::defs::memory::lifetime_n::copy_assign_t copy_assign
函数调用图:

◆ comn_string_data_t() [2/6]

template<typename char_T >
elc::defs::string_n::string_data_n::comn_string_data_t< char_T >::comn_string_data_t ( ptr_t  str)
inlinenoexcept

在文件 all_defs.cpp36333 行定义.

36333 :_m(note::size(str->get_size()+1)){
36334 const auto size=this->get_size();
36335 str->copy_part_data_to(_m.data(),0,size);
36336 _m[size]=zero;
36337 }
virtual size_t get_size() noexcept override final

◆ comn_string_data_t() [3/6]

template<typename char_T >
elc::defs::string_n::string_data_n::comn_string_data_t< char_T >::comn_string_data_t ( ptr_t  str,
size_t  pos,
size_t  size 
)
inlinenoexcept

在文件 all_defs.cpp36338 行定义.

36338 :_m(note::size(size+1)){
36339 str->copy_part_data_to(_m.data(),pos,size);
36340 _m[size]=zero;
36341 }
constexpr T down_cast(U a) noexcept
向下转型至

◆ comn_string_data_t() [4/6]

template<typename char_T >
elc::defs::string_n::string_data_n::comn_string_data_t< char_T >::comn_string_data_t ( size_t  size,
char_T  ch 
)
inlinenoexcept

在文件 all_defs.cpp36342 行定义.

36342 :_m(note::size(size+1),ch){
36343 _m[size]=zero;
36344 }

◆ comn_string_data_t() [5/6]

template<typename char_T >
elc::defs::string_n::string_data_n::comn_string_data_t< char_T >::comn_string_data_t ( size_t  size)
inlinenoexcept

在文件 all_defs.cpp36345 行定义.

36345 :_m(note::size(size+1)){
36346 _m[size]=zero;
36347 }

◆ comn_string_data_t() [6/6]

template<typename char_T >
elc::defs::string_n::string_data_n::comn_string_data_t< char_T >::comn_string_data_t ( array_t< char_T base)
inlinenoexcept

在文件 all_defs.cpp36348 行定义.

36348 :_m(move(base)){
36349 _m.push_back(zero);
36350 }
constexpr struct elc::defs::memory::lifetime_n::move_t move

◆ ~comn_string_data_t()

在文件 all_defs.cpp36352 行定义.

成员函数说明

◆ arec()

template<typename char_T >
virtual char_T elc::defs::string_n::string_data_n::comn_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.cpp36371 行定义.

36371{ return _m[index]; }

◆ arec_set()

template<typename char_T >
virtual void elc::defs::string_n::string_data_n::comn_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.cpp36372 行定义.

36372 {
36373 if(this->is_unique()){
36374 copy_assign(_m[index],a);
36375 self_changed();
36376 }
36377 else
36378 base_t::arec_set(index,a,p);
36379 }
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::comn_string_data_t< char_T >::be_replace_as ( ptr_t  a)
inlinefinaloverridevirtualnoexcept

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

在文件 all_defs.cpp36356 行定义.

36356 {
36357 _m.clear();
36359 }
virtual void be_replace_as(ptr_t a) noexcept(clear_nothrow)=0

◆ clear_match_pattern()

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

在文件 all_defs.cpp36311 行定义.

36311 {
36314 _p_match_pattern=nullptr;
36316 }
constexpr struct elc::defs::memory::get_n::unget_t unget
range_n::reverse_match_pattern< const char_T > * _p_reverse_match_pattern
range_n::match_pattern< const char_T > * _p_match_pattern

◆ copy_part_data_to()

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

◆ get_base_memory_cost()

template<typename char_T >
virtual float_size_t elc::defs::string_n::string_data_n::comn_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.cpp36394 行定义.

36394 {
36395 return float_size_of(*this) + _m.size_in_byte();
36396 }
#define float_size_of(...)
Definition all_defs.cpp:576

◆ get_c_str()

template<typename char_T >
virtual string_ptr_t elc::defs::string_n::string_data_n::comn_string_data_t< char_T >::get_c_str ( ptr_t )
inlinefinaloverridevirtualnoexcept

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

在文件 all_defs.cpp36360 行定义.

36360{ return _m.data(); }

◆ 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::comn_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.cpp36398 行定义.

36398 {
36399 if(!_p_match_pattern)
36401 return *_p_match_pattern;
36402 }
virtual const char_T * get_data(ptr_t &p) noexcept(get_data_nothrow)

◆ 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::comn_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::comn_string_data_t< char_T >::get_size ( )
inlinefinaloverridevirtualnoexcept

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

在文件 all_defs.cpp36367 行定义.

36367{ return _m.size()-1; }

◆ 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::comn_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.cpp36384 行定义.

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

◆ get_unique_c_str()

template<typename char_T >
virtual string_ptr_t elc::defs::string_n::string_data_n::comn_string_data_t< char_T >::get_unique_c_str ( ptr_t p)
inlinefinaloverridevirtualnoexcept

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

在文件 all_defs.cpp36361 行定义.

36361 {
36362 if(this->is_unique())
36363 return _m.data();
36364 else
36366 }
virtual string_ptr_t get_unique_c_str(ptr_t &) noexcept(get_data_nothrow)

◆ same_struct()

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

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

在文件 all_defs.cpp36381 行定义.

36381 {
36382 return true;//总size被保证一样
36383 }

◆ same_struct_compare()

template<typename char_T >
virtual base_t::compare_type elc::defs::string_n::string_data_n::comn_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.cpp36389 行定义.

36389 {
36390 auto wp=down_cast<this_t*>(with.get());
36391 return compare(_m, wp->_m);
36392 }
constexpr struct elc::defs::base::compare_t compare

◆ same_struct_equal()

template<typename char_T >
virtual bool elc::defs::string_n::string_data_n::comn_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.cpp36385 行定义.

36385 {
36386 auto wp=down_cast<this_t*>(with.get());
36387 return equal(_m, wp->_m);
36388 }
constexpr struct elc::defs::base::equal_t equal

◆ self_changed() [1/2]

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

在文件 all_defs.cpp35950 行定义.

◆ self_changed() [2/2]

template<typename char_T >
void elc::defs::string_n::string_data_n::comn_string_data_t< char_T >::self_changed ( )
inlinenoexcept

在文件 all_defs.cpp36317 行定义.

36317 {
36318 #if defined(_MSC_VER) && defined(ELC_STRING_CHECKING_NOT_INITED_CHARS)
36319 push_and_disable_msvc_warning(4310);//截断常量警告diss
36320 for(size_t i=0;i<_m.size();i++)
36321 if(_m[i]==char_T(0xCDCDCDCD))
36322 __debugbreak();
36324 #endif
36327 }
#define pop_msvc_warning()
Definition all_defs.cpp:478
#define push_and_disable_msvc_warning(...)
Definition all_defs.cpp:479

◆ set_hash_cache()

类成员变量说明

◆ _m

◆ _p_match_pattern

◆ _p_reverse_match_pattern

◆ 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 行定义.

◆ 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 行定义.


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