ELC in dev
ELC-lang
载入中...
搜索中...
未找到
elc::defs::base::demangle_name_t结构体 参考
类 elc::defs::base::demangle_name_t 继承关系图:
[图例]
elc::defs::base::demangle_name_t 的协作图:
[图例]

Public 类型

typedef string_view_t< charbase_t
 
- Public 类型 继承自 elc::defs::base::string_view_n::string_view_t< char_T >
typedef array_like_view_t< const char_Tbase_t
 
typedef char_Tstring_ptr_t
 
typedef const char_Tconst_string_ptr_t
 

Public 成员函数

 demangle_name_t (const char *original_name) noexcept
 构造函数
 
 demangle_name_t (const demangle_name_t &other) noexcept
 复制构造函数
 
 demangle_name_t (demangle_name_t &&other) noexcept
 移动构造函数(swap)
 
 ~demangle_name_t () noexcept
 析构函数
 
- Public 成员函数 继承自 elc::defs::base::string_view_n::string_view_t< char_T >
constexpr string_view_t (const_string_ptr_t str) noexcept
 
constexpr const char_Tstr () const noexcept
 
constexpr const char_Tdata () const noexcept
 
constexpr operator const char_T * () const noexcept
 
constexpr string_view_t substr (size_t pos, size_t len) const noexcept
 
constexpr string_view_t substr (size_t pos) const noexcept
 
constexpr string_view_t substr (size_t pos, const char_T *end) const noexcept
 
constexpr string_view_t substr (const char_T *begin, size_t len) const noexcept
 
constexpr string_view_t substr (const char_T *begin) const noexcept
 
constexpr string_view_t substr (const char_T *begin, const char_T *end) const noexcept
 
constexpr bool starts_with (const char_T ch) const noexcept
 
constexpr bool starts_with (string_view_t str) const noexcept
 
constexpr bool starts_with (const char_T *str) const noexcept
 
constexpr size_t find (const char_T ch) const
 
constexpr size_t reverse_find (const char_T ch) const
 
constexpr size_t find (string_view_t str) const
 
constexpr size_t reverse_find (string_view_t str) const
 
constexpr size_t find (const constexpr_str_t< char_T > &str) const
 
constexpr size_t reverse_find (const constexpr_str_t< char_T > &str) const
 
constexpr size_t find_first_of (const char_T ch) const
 
constexpr size_t find_last_of (const char_T ch) const
 
constexpr size_t find_first_not_of (const char_T ch) const
 
constexpr size_t find_last_not_of (const char_T ch) const
 
constexpr size_t find_first_of (string_view_t str) const
 
constexpr size_t find_last_of (string_view_t str) const
 
constexpr size_t find_first_not_of (string_view_t str) const
 
constexpr size_t find_last_not_of (string_view_t str) const
 
constexpr size_t find_first_of (const constexpr_str_t< char_T > &str) const
 
constexpr size_t find_last_of (const constexpr_str_t< char_T > &str) const
 
constexpr size_t find_first_not_of (const constexpr_str_t< char_T > &str) const
 
constexpr size_t find_last_not_of (const constexpr_str_t< char_T > &str) const
 

静态 Public 成员函数

static base_t demangle (const char *original_name) noexcept
 重整器包装
 
static base_t copy_demangle (base_t demangled_name) noexcept
 复制重整结果
 

额外继承的成员函数

- 静态 Public 属性 继承自 elc::defs::base::string_view_n::string_view_t< char_T >
static constexpr size_t npos =bit::npos
 

详细描述

在文件 all_defs.cpp12065 行定义.

成员类型定义说明

◆ base_t

构造及析构函数说明

◆ demangle_name_t() [1/3]

elc::defs::base::demangle_name_t::demangle_name_t ( const char original_name)
inlinenoexcept

构造函数

在文件 all_defs.cpp12112 行定义.

constexpr T down_cast(U a) noexcept
向下转型至
static base_t demangle(const char *original_name) noexcept
重整器包装
string_view_t< char > base_t

◆ demangle_name_t() [2/3]

elc::defs::base::demangle_name_t::demangle_name_t ( const demangle_name_t other)
inlinenoexcept

复制构造函数

在文件 all_defs.cpp12114 行定义.

#define other
static base_t copy_demangle(base_t demangled_name) noexcept
复制重整结果

◆ demangle_name_t() [3/3]

elc::defs::base::demangle_name_t::demangle_name_t ( demangle_name_t &&  other)
inlinenoexcept

移动构造函数(swap)

在文件 all_defs.cpp12116 行定义.

12116 :base_t(nullptr,0){
12118 }
void swap_with(this_t &b) noexcept(noexcept((swap(_begin, b._begin), swap(_size, b._size))))

◆ ~demangle_name_t()

elc::defs::base::demangle_name_t::~demangle_name_t ( )
inlinenoexcept

析构函数

在文件 all_defs.cpp12120 行定义.

12120 {
12121 #if defined(__clang__)||defined(__GNUC__)
12122 //gcc和clang
12123 //需要释放malloced的char*
12124 ::std::free((void*)begin());
12125 #endif
12126 }

成员函数说明

◆ copy_demangle()

static base_t elc::defs::base::demangle_name_t::copy_demangle ( base_t  demangled_name)
inlinestaticnoexcept

复制重整结果

在文件 all_defs.cpp12095 行定义.

12095 {
12096 #if defined(__clang__)||defined(__GNUC__)
12097 //gcc和clang
12098 //需要复制重整结果(用malloced的char*)
12099 char*copyed_name=(char*)::std::malloc(demangled_name.size()+1);
12100 if(copyed_name==nullptr)
12101 return base_t{nullptr,0};
12102 ::std::memcpy(copyed_name,demangled_name.data(),demangled_name.size());
12103 copyed_name[demangled_name.size()]='\0';
12105 #else
12106 //msvc
12107 //不需要复制重整结果
12108 return demangled_name;
12109 #endif
12110 }
constexpr size_t size() const noexcept
函数调用图:

◆ demangle()

static base_t elc::defs::base::demangle_name_t::demangle ( const char original_name)
inlinestaticnoexcept

重整器包装

在文件 all_defs.cpp12071 行定义.

12071 {
12072 push_and_disable_msvc_warning(26494);//未初始化警告diss
12073 size_t len;
12074 const char*demangled_name;
12076 #if defined(__clang__)||defined(__GNUC__)
12077 //gcc和clang
12078 //使用abi::__cxa_demangle重整
12079 int status;
12080 demangled_name=::abi::__cxa_demangle(original_name,nullptr,&len,&status);
12081 if(status!=0){
12083 len=::std::strlen(original_name);
12084 ::std::free((void*)demangled_name);
12085 }
12086 #else
12087 //msvc
12088 //不需要重整
12090 len=::std::strlen(original_name);
12091 #endif
12092 return base_t{demangled_name,len};
12093 }
#define pop_msvc_warning()
Definition all_defs.cpp:478
#define push_and_disable_msvc_warning(...)
Definition all_defs.cpp:479

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