chenjunfu2-nbt-cpp v2.1.0
一个基于CPP20的NBT(Named Binary Tag)库
载入中...
搜索中...
未找到
NBT_String< String, StringView > 模板类 参考

继承自标准库std::basic_string的代理类,用于存储、处理与转换Modified-UTF-8字符串 更多...

#include <NBT_String.hpp>

类 NBT_String< String, StringView > 继承关系图:

struct  USE_RAW_DATA
 用于重载匹配的标签类型,指示直接使用原始值而非自动转换 更多...

Public 类型

using View = NBT_StringView<String, StringView>
 当前String对应的视图View类型

Public 成员函数

 NBT_String (const String &_Copy)
 提供从父类拷贝构造此类的途径
 NBT_String (String &&_Move)
 提供从父类移动构造此类的途径
 NBT_String (const std::basic_string< char > &u8CharTypeString, USE_RAW_DATA)
 从char类型的UTF-8编码字符串直接构造NBT_String对象
 NBT_String (const std::basic_string< char8_t > &u8String, USE_RAW_DATA)
 从UTF-8编码字符串直接构造NBT_String对象
 NBT_String (const std::basic_string< char > &u8CharTypeString)
 从char类型的UTF-8编码字符串构造NBT_String对象
 NBT_String (const std::basic_string< char8_t > &u8String)
 从UTF-8编码字符串构造NBT_String对象
template<typename = void>
requires (sizeof(wchar_t) == sizeof(char16_t))
 NBT_String (const std::basic_string< wchar_t > &u16WCharTypeString)
 从wchar_t类型的UTF-16编码字符串构造NBT_String对象
 NBT_String (const std::basic_string< char16_t > &u16String)
 从UTF-16编码字符串构造NBT_String对象
 NBT_String (std::basic_string_view< char > u8CharTypeString, USE_RAW_DATA)
 从char类型的UTF-8编码字符串视图直接构造NBT_String对象
 NBT_String (std::basic_string_view< char8_t > u8String, USE_RAW_DATA)
 从UTF-8编码字符串视图直接构造NBT_String对象
 NBT_String (std::basic_string_view< char > u8CharTypeString)
 从char类型的UTF-8编码字符串视图构造NBT_String对象
 NBT_String (std::basic_string_view< char8_t > u8String)
 从UTF-8编码字符串视图构造NBT_String对象
template<typename = void>
requires (sizeof(wchar_t) == sizeof(char16_t))
 NBT_String (std::basic_string_view< wchar_t > u16WCharTypeString)
 从wchar_t类型的UTF-16编码字符串视图构造NBT_String对象
 NBT_String (std::basic_string_view< char16_t > u16String)
 从UTF-16编码字符串视图构造NBT_String对象
template<typename String::size_type N>
 NBT_String (const typename String::value_type(&ltrStr)[N])
 通过c风格字符串或字符数组初始化
 NBT_String (const View &view)
 从对应的视图类型View中构造String
 NBT_String (const StringView &_View)
 从对应的视图类型View的父类构造String
std::basic_string_view< char > GetCharTypeView (void) const noexcept
 直接从当前对象获取char类型的视图
auto ToCharTypeUTF8 (void) const
 转换到UTF-8字符编码,但是返回为char类型而非char8_t类型
auto ToUTF8 (void) const
 转换到UTF-8字符编码
template<typename = void>
requires (sizeof(wchar_t) == sizeof(char16_t))
auto ToWchartTypeUTF16 (void) const
 转换到UTF-16字符编码,但是返回为wchar_t类型而非char16_t类型
auto ToUTF16 (void) const
 转换到UTF-16字符编码
void FromCharTypeUTF8 (const std::basic_string< char > &u8CharTypeString)
 从char类型的UTF-8编码字符串替换当前对象内容
void FromCharTypeUTF8 (const std::basic_string< char > &u8CharTypeString, USE_RAW_DATA)
 从 char 类型的UTF-8编码字符串直接替换当前对象内容
void FromUTF8 (const std::basic_string< char8_t > &u8String)
 从UTF-8编码字符串替换当前对象内容
void FromUTF8 (const std::basic_string< char8_t > &u8String, USE_RAW_DATA)
 从UTF-8编码字符串直接替换当前对象内容
template<typename = void>
requires (sizeof(wchar_t) == sizeof(char16_t))
void FromWchartTypeUTF16 (const std::basic_string< wchar_t > &u16WCharTypeString)
 从wchar_t类型的UTF-16编码字符串替换当前对象内容
void FromUTF16 (const std::basic_string< char16_t > &u16String)
 从UTF-16编码字符串替换当前对象内容
void FromCharTypeUTF8 (std::basic_string_view< char > u8CharTypeString)
 从char类型的UTF-8编码字符串替换当前对象内容
void FromCharTypeUTF8 (std::basic_string_view< char > u8CharTypeString, USE_RAW_DATA)
 从char类型的UTF-8编码字符串直接替换当前对象内容
void FromUTF8 (std::basic_string_view< char8_t > u8String)
 从UTF-8编码字符串替换当前对象内容
void FromUTF8 (std::basic_string_view< char8_t > u8String, USE_RAW_DATA)
 从UTF-8编码字符串直接替换当前对象内容
template<typename = void>
requires (sizeof(wchar_t) == sizeof(char16_t))
void FromWchartTypeUTF16 (std::basic_string_view< wchar_t > u16WCharTypeString)
 从wchar_t类型的UTF-16编码字符串替换当前对象内容
void FromUTF16 (std::basic_string_view< char16_t > u16String)
 从UTF-16编码字符串替换当前对象内容

友元

class NBT_Reader
class NBT_Writer
class NBT_Helper

详细描述

template<typename String, typename StringView>
class NBT_String< String, StringView >

继承自标准库std::basic_string的代理类,用于存储、处理与转换Modified-UTF-8字符串

模板参数
String继承的父类,也就是std::basic_string
StringView与此类绑定的std::basic_string_view类型,用于提供互相转换功能
注解
用户不应自行实例化此类,请使用NBT_Type::String来访问此类实例化类型。

构造及析构函数说明

◆ NBT_String() [1/17]

template<typename String, typename StringView>
NBT_String< String, StringView >::NBT_String ( const String & _Copy)
inline

提供从父类拷贝构造此类的途径

参数
_Copy需要拷贝构造的对象

◆ NBT_String() [2/17]

template<typename String, typename StringView>
NBT_String< String, StringView >::NBT_String ( String && _Move)
inline

提供从父类移动构造此类的途径

参数
_Move需要移动构造的对象

◆ NBT_String() [3/17]

template<typename String, typename StringView>
NBT_String< String, StringView >::NBT_String ( const std::basic_string< char > & u8CharTypeString,
USE_RAW_DATA  )
inline

从char类型的UTF-8编码字符串直接构造NBT_String对象

参数
u8CharTypeStringchar类型的UTF-8字符串
注解
直接使用原始字符串替换当前对象内容,不进行编码转换。
警告
用户必须确保仅使用非代理对UTF8进行原始值初始化,否则字符串内容将不正确。

◆ NBT_String() [4/17]

template<typename String, typename StringView>
NBT_String< String, StringView >::NBT_String ( const std::basic_string< char8_t > & u8String,
USE_RAW_DATA  )
inline

从UTF-8编码字符串直接构造NBT_String对象

参数
u8Stringchar8_t类型的UTF-8字符串
注解
直接使用原始字符串替换当前对象内容,不进行编码转换。
警告
用户必须确保仅使用非代理对UTF8进行原始值初始化,否则字符串内容将不正确。

◆ NBT_String() [5/17]

template<typename String, typename StringView>
NBT_String< String, StringView >::NBT_String ( const std::basic_string< char > & u8CharTypeString)
inline

从char类型的UTF-8编码字符串构造NBT_String对象

参数
u8CharTypeStringchar类型的UTF-8字符串

◆ NBT_String() [6/17]

template<typename String, typename StringView>
NBT_String< String, StringView >::NBT_String ( const std::basic_string< char8_t > & u8String)
inline

从UTF-8编码字符串构造NBT_String对象

参数
u8Stringchar8_t类型的UTF-8字符串

◆ NBT_String() [7/17]

template<typename String, typename StringView>
template<typename = void>
requires (sizeof(wchar_t) == sizeof(char16_t))
NBT_String< String, StringView >::NBT_String ( const std::basic_string< wchar_t > & u16WCharTypeString)
inline

从wchar_t类型的UTF-16编码字符串构造NBT_String对象

参数
u16WCharTypeStringwchar_t类型的UTF-16字符串

◆ NBT_String() [8/17]

template<typename String, typename StringView>
NBT_String< String, StringView >::NBT_String ( const std::basic_string< char16_t > & u16String)
inline

从UTF-16编码字符串构造NBT_String对象

参数
u16Stringchar16_t类型的UTF-16字符串

◆ NBT_String() [9/17]

template<typename String, typename StringView>
NBT_String< String, StringView >::NBT_String ( std::basic_string_view< char > u8CharTypeString,
USE_RAW_DATA  )
inline

从char类型的UTF-8编码字符串视图直接构造NBT_String对象

参数
u8CharTypeStringchar类型的UTF-8字符串视图
注解
直接使用原始字符串替换当前对象内容,不进行编码转换。
警告
用户必须确保仅使用非代理对UTF8进行原始值初始化,否则字符串内容将不正确。

◆ NBT_String() [10/17]

template<typename String, typename StringView>
NBT_String< String, StringView >::NBT_String ( std::basic_string_view< char8_t > u8String,
USE_RAW_DATA  )
inline

从UTF-8编码字符串视图直接构造NBT_String对象

参数
u8Stringchar8_t类型的UTF-8字符串视图
注解
直接使用原始字符串替换当前对象内容,不进行编码转换。
警告
用户必须确保仅使用非代理对UTF8进行原始值初始化,否则字符串内容将不正确。

◆ NBT_String() [11/17]

template<typename String, typename StringView>
NBT_String< String, StringView >::NBT_String ( std::basic_string_view< char > u8CharTypeString)
inline

从char类型的UTF-8编码字符串视图构造NBT_String对象

参数
u8CharTypeStringchar类型的UTF-8字符串视图

◆ NBT_String() [12/17]

template<typename String, typename StringView>
NBT_String< String, StringView >::NBT_String ( std::basic_string_view< char8_t > u8String)
inline

从UTF-8编码字符串视图构造NBT_String对象

参数
u8Stringchar8_t类型的UTF-8字符串视图

◆ NBT_String() [13/17]

template<typename String, typename StringView>
template<typename = void>
requires (sizeof(wchar_t) == sizeof(char16_t))
NBT_String< String, StringView >::NBT_String ( std::basic_string_view< wchar_t > u16WCharTypeString)
inline

从wchar_t类型的UTF-16编码字符串视图构造NBT_String对象

参数
u16WCharTypeStringwchar_t类型的UTF-16字符串视图

◆ NBT_String() [14/17]

template<typename String, typename StringView>
NBT_String< String, StringView >::NBT_String ( std::basic_string_view< char16_t > u16String)
inline

从UTF-16编码字符串视图构造NBT_String对象

参数
u16Stringchar16_t类型的UTF-16字符串视图

◆ NBT_String() [15/17]

template<typename String, typename StringView>
template<typename String::size_type N>
NBT_String< String, StringView >::NBT_String ( const typename String::value_type(&) ltrStr[N])
inline

通过c风格字符串或字符数组初始化

参数
ltrStr数组的引用
注解
如果字符串或字符数组以c风格字符串的\0或mutf8的0x80 0xc0结尾,则裁切多余结尾,因为string数据中不应包含字符串结束符, 这里的裁切仅缩小拷贝字符串长度,而非修改原始对象进行修改。

◆ NBT_String() [16/17]

template<typename String, typename StringView>
NBT_String< String, StringView >::NBT_String ( const View & view)
inline

从对应的视图类型View中构造String

参数
view视图类型View的引用

◆ NBT_String() [17/17]

template<typename String, typename StringView>
NBT_String< String, StringView >::NBT_String ( const StringView & _View)
inline

从对应的视图类型View的父类构造String

参数
_View视图类型View的父类的引用

成员函数说明

◆ FromCharTypeUTF8() [1/4]

template<typename String, typename StringView>
void NBT_String< String, StringView >::FromCharTypeUTF8 ( const std::basic_string< char > & u8CharTypeString)
inline

从char类型的UTF-8编码字符串替换当前对象内容

参数
u8CharTypeStringchar类型的basic_string,实际编码应为UTF-8
注解
从字符串转换为Modified-UTF-8后替换当前对象。

◆ FromCharTypeUTF8() [2/4]

template<typename String, typename StringView>
void NBT_String< String, StringView >::FromCharTypeUTF8 ( const std::basic_string< char > & u8CharTypeString,
USE_RAW_DATA  )
inline

从 char 类型的UTF-8编码字符串直接替换当前对象内容

参数
u8CharTypeStringchar类型的basic_string,实际编码应为UTF-8
注解
直接使用原始字符串替换当前对象内容,不进行编码转换。
警告
用户必须确保仅使用非代理对UTF8进行原始值初始化,否则字符串内容将不正确。

◆ FromCharTypeUTF8() [3/4]

template<typename String, typename StringView>
void NBT_String< String, StringView >::FromCharTypeUTF8 ( std::basic_string_view< char > u8CharTypeString)
inline

从char类型的UTF-8编码字符串替换当前对象内容

参数
u8CharTypeStringchar类型的视图view,实际编码应为UTF-8
注解
从视图中的字符串转换为Modified-UTF-8后替换当前对象。

◆ FromCharTypeUTF8() [4/4]

template<typename String, typename StringView>
void NBT_String< String, StringView >::FromCharTypeUTF8 ( std::basic_string_view< char > u8CharTypeString,
USE_RAW_DATA  )
inline

从char类型的UTF-8编码字符串直接替换当前对象内容

参数
u8CharTypeStringchar类型的视图view,实际编码应为UTF-8
注解
直接使用原始字符串替换当前对象内容,不进行编码转换。
警告
用户必须确保仅使用非代理对UTF8进行原始值初始化,否则字符串内容将不正确。

◆ FromUTF16() [1/2]

template<typename String, typename StringView>
void NBT_String< String, StringView >::FromUTF16 ( const std::basic_string< char16_t > & u16String)
inline

从UTF-16编码字符串替换当前对象内容

参数
u16Stringchar16_t类型的basic_string
注解
从字符串转换为Modified-UTF-8后替换当前对象。

◆ FromUTF16() [2/2]

template<typename String, typename StringView>
void NBT_String< String, StringView >::FromUTF16 ( std::basic_string_view< char16_t > u16String)
inline

从UTF-16编码字符串替换当前对象内容

参数
u16Stringchar16_t类型的视图view
注解
从视图中的字符串转换为Modified-UTF-8后替换当前对象。

◆ FromUTF8() [1/4]

template<typename String, typename StringView>
void NBT_String< String, StringView >::FromUTF8 ( const std::basic_string< char8_t > & u8String)
inline

从UTF-8编码字符串替换当前对象内容

参数
u8Stringchar8_t类型的basic_string
注解
从字符串转换为Modified-UTF-8后替换当前对象。

◆ FromUTF8() [2/4]

template<typename String, typename StringView>
void NBT_String< String, StringView >::FromUTF8 ( const std::basic_string< char8_t > & u8String,
USE_RAW_DATA  )
inline

从UTF-8编码字符串直接替换当前对象内容

参数
u8Stringchar8_t类型的basic_string
注解
直接使用原始字符串替换当前对象内容,不进行编码转换。
警告
用户必须确保仅使用非代理对UTF8进行原始值初始化,否则字符串内容将不正确。

◆ FromUTF8() [3/4]

template<typename String, typename StringView>
void NBT_String< String, StringView >::FromUTF8 ( std::basic_string_view< char8_t > u8String)
inline

从UTF-8编码字符串替换当前对象内容

参数
u8Stringchar8_t类型的视图view
注解
从视图中的字符串转换为Modified-UTF-8后替换当前对象。

◆ FromUTF8() [4/4]

template<typename String, typename StringView>
void NBT_String< String, StringView >::FromUTF8 ( std::basic_string_view< char8_t > u8String,
USE_RAW_DATA  )
inline

从UTF-8编码字符串直接替换当前对象内容

参数
u8Stringchar8_t类型的视图view
注解
直接使用原始字符串替换当前对象内容,不进行编码转换。
警告
用户必须确保仅使用非代理对UTF8进行原始值初始化,否则字符串内容将不正确。

◆ FromWchartTypeUTF16() [1/2]

template<typename String, typename StringView>
template<typename = void>
requires (sizeof(wchar_t) == sizeof(char16_t))
void NBT_String< String, StringView >::FromWchartTypeUTF16 ( const std::basic_string< wchar_t > & u16WCharTypeString)
inline

从wchar_t类型的UTF-16编码字符串替换当前对象内容

参数
u16WCharTypeStringwchar_t类型的basic_string,实际编码应为UTF-16
注解
从字符串转换为Modified-UTF-8后替换当前对象。

◆ FromWchartTypeUTF16() [2/2]

template<typename String, typename StringView>
template<typename = void>
requires (sizeof(wchar_t) == sizeof(char16_t))
void NBT_String< String, StringView >::FromWchartTypeUTF16 ( std::basic_string_view< wchar_t > u16WCharTypeString)
inline

从wchar_t类型的UTF-16编码字符串替换当前对象内容

参数
u16WCharTypeStringwchar_t类型的视图view,实际编码应为UTF-16
注解
从视图中的字符串转换为Modified-UTF-8后替换当前对象。

◆ GetCharTypeView()

template<typename String, typename StringView>
std::basic_string_view< char > NBT_String< String, StringView >::GetCharTypeView ( void ) const
inlinenoexcept

直接从当前对象获取char类型的视图

返回
char类型的视图View
注解
仅用于方便部分只支持char类型字符串的库使用,如果需要转换到其它字符编码,请调用本类的转换API。 在修改本对象,或离开作用域后,不应该再使用此函数原先返回的view类型。

◆ ToCharTypeUTF8()

template<typename String, typename StringView>
auto NBT_String< String, StringView >::ToCharTypeUTF8 ( void ) const
inline

转换到UTF-8字符编码,但是返回为char类型而非char8_t类型

返回
自动推导,应为char类型的std::basic_string
注解
返回为char类型仅用于方便部分只支持char类型的库使用,实际编码仍为UTF-8。 转换后的字符串与当前字符串对象与当前字符串对象独立,互不影响。

◆ ToUTF16()

template<typename String, typename StringView>
auto NBT_String< String, StringView >::ToUTF16 ( void ) const
inline

转换到UTF-16字符编码

返回
自动推导,应为char16_t类型的std::basic_string
注解
转换后的字符串与当前字符串对象与当前字符串对象独立,互不影响。

◆ ToUTF8()

template<typename String, typename StringView>
auto NBT_String< String, StringView >::ToUTF8 ( void ) const
inline

转换到UTF-8字符编码

返回
自动推导,应为char8_t类型的std::basic_string
注解
转换后的字符串与当前字符串对象与当前字符串对象独立,互不影响。

◆ ToWchartTypeUTF16()

template<typename String, typename StringView>
template<typename = void>
requires (sizeof(wchar_t) == sizeof(char16_t))
auto NBT_String< String, StringView >::ToWchartTypeUTF16 ( void ) const
inline

转换到UTF-16字符编码,但是返回为wchar_t类型而非char16_t类型

返回
自动推导,应为wchar_t类型的std::basic_string
注解
返回为wchar_t类型仅用于方便部分只支持wchar_t类型的库使用,实际编码仍为UTF-16。 转换后的字符串与当前字符串对象与当前字符串对象独立,互不影响。

该类的文档由以下文件生成: