yaLanTingLibs
struct_pack::string_literal< CharType, Size > 模板结构体 参考

编译期字符串类型 更多...

#include <struct_pack_doc.hpp>

Public 成员函数

constexpr string_literal (std::basic_string_view< CharType > str)
 string_view构造string_literal类型
 
constexpr string_literal (const CharType(&value)[Size+1])
 从数组构造string_literal类型
 
constexpr std::size_t size () const
 返回字符串的长度 更多...
 
constexpr bool empty () const
 判断字符串是否为空字符串 更多...
 
constexpr CharType & operator[] (std::size_t sz)
 获取下标对应的字符 更多...
 
constexpr const char & operator[] (std::size_t sz) const
 获取下标对应的字符 更多...
 
constexpr const CharType * data () const
 返回一个C-style(以'\0'结尾)的字符串指针 更多...
 
template<std::size_t Size2>
constexpr bool operator!= (const string_literal< CharType, Size2 > &other) const
 判断两个字符串是否不相等 更多...
 
template<std::size_t Size2>
constexpr bool operator== (const string_literal< CharType, Size2 > &other) const
 判断两个字符串是否相等 更多...
 
template<size_t Size2>
constexpr string_literal< CharType, Size+Size2 > operator+ (string_literal< CharType, Size2 > other) const
 拼接两个字符串 更多...
 

详细描述

template<typename CharType, std::size_t Size>
struct struct_pack::string_literal< CharType, Size >

编译期字符串类型

模板参数
CharType字符类型
Size字符串长度 该类用于表示一个编译期的字符串类型,是函数struct_pack::get_type_literal的返回值,该字符串以'\0'结尾

样例代码:

auto str = struct_pack::get_type_literal<int, int, short>();
CHECK(str.size() == 5);
string_literal<char, 5> val{{(char)-2, 1, 1, 7, (char)-1}};
// {struct_begin,int32_t,int32_t,int16_t,struct_end};
CHECK(str == val);

成员函数说明

◆ data()

template<typename CharType , std::size_t Size>
constexpr const CharType* struct_pack::string_literal< CharType, Size >::data ( ) const
constexpr

返回一个C-style(以'\0'结尾)的字符串指针

返回
constexpr const CharType*

◆ empty()

template<typename CharType , std::size_t Size>
constexpr bool struct_pack::string_literal< CharType, Size >::empty ( ) const
constexpr

判断字符串是否为空字符串

返回
true
false

◆ operator!=()

template<typename CharType , std::size_t Size>
template<std::size_t Size2>
constexpr bool struct_pack::string_literal< CharType, Size >::operator!= ( const string_literal< CharType, Size2 > &  other) const
constexpr

判断两个字符串是否不相等

模板参数
Size2
参数
other
返回
true
false

◆ operator+()

template<typename CharType , std::size_t Size>
template<size_t Size2>
constexpr string_literal<CharType, Size + Size2> struct_pack::string_literal< CharType, Size >::operator+ ( string_literal< CharType, Size2 >  other) const
constexpr

拼接两个字符串

模板参数
Size2
参数
other
返回
string_literal<CharType, Size + Size2> constexpr 返回拼接后的字符串

◆ operator==()

template<typename CharType , std::size_t Size>
template<std::size_t Size2>
constexpr bool struct_pack::string_literal< CharType, Size >::operator== ( const string_literal< CharType, Size2 > &  other) const
constexpr

判断两个字符串是否相等

模板参数
Size2
参数
other
返回
true
false

◆ operator[]() [1/2]

template<typename CharType , std::size_t Size>
constexpr CharType& struct_pack::string_literal< CharType, Size >::operator[] ( std::size_t  sz)
constexpr

获取下标对应的字符

参数
sz
返回
constexpr CharType&

◆ operator[]() [2/2]

template<typename CharType , std::size_t Size>
constexpr const char& struct_pack::string_literal< CharType, Size >::operator[] ( std::size_t  sz) const
constexpr

获取下标对应的字符

参数
sz
返回
constexpr const char&

◆ size()

template<typename CharType , std::size_t Size>
constexpr std::size_t struct_pack::string_literal< CharType, Size >::size ( ) const
constexpr

返回字符串的长度

返回
constexpr std::size_t

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