只读原始数据视图 / Immutable raw data view
More...
#include <libxr_type.hpp>
|
| | ConstRawData (const void *addr, size_t size) |
| | 使用指定地址和大小构造 ConstRawData 对象。 Constructs a ConstRawData object with the specified address and size.
|
| |
|
| ConstRawData ()=default |
| | 默认构造函数,初始化为空数据。 Default constructor initializing to empty data.
|
| |
template<typename DataType >
requires (!std::is_pointer_v<std::remove_cvref_t<DataType>> && !std::is_same_v<std::remove_cvref_t<DataType>, ConstRawData> && !std::is_same_v<std::remove_cvref_t<DataType>, RawData>) |
| | ConstRawData (const DataType &data) |
| | 从任意对象构造只读视图 / Construct a read-only view from any object
|
| |
| | ConstRawData (const ConstRawData &data)=default |
| | 拷贝构造函数。 Copy constructor.
|
| |
| | ConstRawData (const RawData &data) |
| | 从 RawData 构造 ConstRawData,数据地址和大小保持不变。 Constructs ConstRawData from RawData, keeping the same data address and size.
|
| |
template<typename CharPtr >
requires (std::is_pointer_v<std::remove_cvref_t<CharPtr>> && std::is_same_v< std::remove_cv_t<std::remove_pointer_t<std::remove_cvref_t<CharPtr>>>, char> && !std::is_volatile_v<std::remove_pointer_t<std::remove_cvref_t<CharPtr>>>) |
| | ConstRawData (CharPtr &&data) |
| | 从 char* / const char* 文本指针构造 ConstRawData,数据大小为字符串长度(不含 \0)。 Constructs ConstRawData from a char* / const char* text pointer, with size set to the string length (excluding \0).
|
| |
| | ConstRawData (const std::string &data) |
| | 从只读字符串构造文本视图 / Construct a text view from a read-only string
|
| |
| | ConstRawData (std::string_view data) |
| | 从字符串视图构造文本视图 / Construct a text view from a string view
|
| |
| template<size_t N> |
| | ConstRawData (char(&data)[N]) |
| | 从字符数组构造 ConstRawData;若最后一个字符是 \\0,仅忽略这一尾随终止符。
|
| |
| template<size_t N> |
| | ConstRawData (const char(&data)[N]) |
| |
| ConstRawData & | operator= (const ConstRawData &data)=default |
| | 赋值运算符重载。 Overloaded assignment operator.
|
| |
|
| const void * | addr_ = nullptr |
| | 数据起始地址 / Data start address
|
| |
| size_t | size_ = 0 |
| | 数据字节数 / Data size in bytes
|
| |
只读原始数据视图 / Immutable raw data view
- Note
- 该类型不拥有数据,仅保存起始地址和字节数。调用方需要保证被引用对象在视图使用期间 保持有效。 / This type does not own the data. It only stores the start address and byte count. The caller must keep the referenced object alive while the view is in use.
Definition at line 144 of file libxr_type.hpp.
◆ ConstRawData() [1/9]
| LibXR::ConstRawData::ConstRawData |
( |
const void * | addr, |
|
|
size_t | size ) |
|
inline |
使用指定地址和大小构造 ConstRawData 对象。 Constructs a ConstRawData object with the specified address and size.
- Parameters
-
| addr | 数据的起始地址。 The starting address of the data. |
| size | 数据的大小(字节)。 The size of the data (in bytes). |
Definition at line 156 of file libxr_type.hpp.
size_t size_
数据字节数 / Data size in bytes
const void * addr_
数据起始地址 / Data start address
◆ ConstRawData() [2/9]
template<typename DataType >
requires (!std::is_pointer_v<std::remove_cvref_t<DataType>> && !std::is_same_v<std::remove_cvref_t<DataType>,
ConstRawData> && !std::is_same_v<std::remove_cvref_t<DataType>,
RawData>)
| LibXR::ConstRawData::ConstRawData |
( |
const DataType & | data | ) |
|
|
inline |
从任意对象构造只读视图 / Construct a read-only view from any object
- Template Parameters
-
| DataType | 对象类型 / Object type |
- Parameters
-
| data | 被引用对象 / Referenced object |
Definition at line 173 of file libxr_type.hpp.
174 :
addr_(
reinterpret_cast<const DataType*
>(&data)),
size_(
sizeof(DataType))
175 {
176 }
◆ ConstRawData() [3/9]
| LibXR::ConstRawData::ConstRawData |
( |
const ConstRawData & | data | ) |
|
|
default |
拷贝构造函数。 Copy constructor.
- Parameters
-
◆ ConstRawData() [4/9]
| LibXR::ConstRawData::ConstRawData |
( |
const RawData & | data | ) |
|
|
inline |
◆ ConstRawData() [5/9]
template<typename CharPtr >
requires (std::is_pointer_v<std::remove_cvref_t<CharPtr>> && std::is_same_v< std::remove_cv_t<std::remove_pointer_t<std::remove_cvref_t<CharPtr>>>, char> && !std::is_volatile_v<std::remove_pointer_t<std::remove_cvref_t<CharPtr>>>)
| LibXR::ConstRawData::ConstRawData |
( |
CharPtr && | data | ) |
|
|
inline |
从 char* / const char* 文本指针构造 ConstRawData,数据大小为字符串长度(不含 \0)。 Constructs ConstRawData from a char* / const char* text pointer, with size set to the string length (excluding \0).
- Parameters
-
| data | C 风格字符串指针。 A C-style string pointer. |
Definition at line 212 of file libxr_type.hpp.
214 size_(data !=
nullptr ? std::strlen(
static_cast<const char*
>(data)) : 0)
215 {
216 }
◆ ConstRawData() [6/9]
| LibXR::ConstRawData::ConstRawData |
( |
const std::string & | data | ) |
|
|
inlineexplicit |
从只读字符串构造文本视图 / Construct a text view from a read-only string
- Parameters
-
| data | 被引用字符串 / Referenced string |
Definition at line 222 of file libxr_type.hpp.
223 :
addr_(data.empty() ?
nullptr : data.data()),
size_(data.size())
224 {
225 }
◆ ConstRawData() [7/9]
| LibXR::ConstRawData::ConstRawData |
( |
std::string_view | data | ) |
|
|
inlineexplicit |
从字符串视图构造文本视图 / Construct a text view from a string view
- Parameters
-
| data | 被引用字符串视图 / Referenced string view |
Definition at line 231 of file libxr_type.hpp.
232 :
addr_(data.empty() ?
nullptr : data.data()),
size_(data.size())
233 {
234 }
◆ ConstRawData() [8/9]
template<size_t N>
| LibXR::ConstRawData::ConstRawData |
( |
char(&) | data[N] | ) |
|
|
inline |
从字符数组构造 ConstRawData;若最后一个字符是 \\0,仅忽略这一尾随终止符。
Constructs ConstRawData from a character array; if the last element is \\0, only that trailing terminator is ignored.
- Template Parameters
-
- Parameters
-
| data | 需要存储的字符数组。 The character array to be stored. |
Definition at line 247 of file libxr_type.hpp.
248 :
addr_(
reinterpret_cast<const void*
>(data)),
249 size_(Detail::TrailingNulTrimmedArraySize(data))
250 {
251 }
◆ ConstRawData() [9/9]
template<size_t N>
| LibXR::ConstRawData::ConstRawData |
( |
const char(&) | data[N] | ) |
|
|
inline |
Definition at line 254 of file libxr_type.hpp.
255 :
addr_(
reinterpret_cast<const void*
>(data)),
256 size_(Detail::TrailingNulTrimmedArraySize(data))
257 {
258 }
◆ operator=()
赋值运算符重载。 Overloaded assignment operator.
- Parameters
-
- Returns
- 返回赋值后的
ConstRawData 对象引用。 Returns a reference to the assigned ConstRawData object.
◆ addr_
| const void* LibXR::ConstRawData::addr_ = nullptr |
◆ size_
| size_t LibXR::ConstRawData::size_ = 0 |
The documentation for this class was generated from the following file: