MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
内存操作函数

低级内存操作函数集合 更多...

函数

MSTL_CONSTEXPR14 void * memory_copy (void *MSTL_RESTRICT dest, const void *MSTL_RESTRICT src, size_t count) noexcept
 从源内存复制到目标内存
template<typename T>
MSTL_CONSTEXPR14 void * memory_copy (T *MSTL_RESTRICT dest, const T *MSTL_RESTRICT src) noexcept
 从源内存复制到目标内存
MSTL_CONSTEXPR14 void * memory_copy_offset (void *MSTL_RESTRICT dest, const void *MSTL_RESTRICT src, size_t count) noexcept
 从源内存复制到目标内存并返回复制结束位置
MSTL_CONSTEXPR14 void * memory_copy_until (void *dest, const void *src, const byte_t value, size_t count) noexcept
 从源内存复制到目标内存,直到遇到特定字节
MSTL_PURE_FUNCTION MSTL_CONSTEXPR14 int memory_compare (const void *lhs, const void *rhs, size_t count) noexcept
 比较两个内存区域的内容
template<typename T>
MSTL_PURE_FUNCTION MSTL_CONSTEXPR14 int memory_compare (const T &lhs, const T &rhs) noexcept
 比较两个内存区域的内容
MSTL_CONSTEXPR14 void * memory_move (void *dest, const void *src, size_t count) noexcept
 从源内存移动数据到目标内存
MSTL_CONSTEXPR14 void * memory_set (void *dest, const byte_t value, size_t count) noexcept
 使用指定字节填充内存区域
MSTL_CONSTEXPR14 void memory_zero (void *dest, const size_t count) noexcept
 将内存区域清零
template<typename T>
MSTL_CONSTEXPR14 void memory_zero (T *dest) noexcept
 将内存区域清零
MSTL_PURE_FUNCTION MSTL_CONSTEXPR14 const void * memory_find (const void *dest, const byte_t value, size_t count) noexcept
 在内存中搜索特定字节
MSTL_CONSTEXPR14 const void * memory_find_pattern (const void *data, const size_t data_len, const void *pattern, const size_t pattern_len) noexcept
 在内存中搜索子模式
template<typename To, typename From>
MSTL_NODISCARD MSTL_CONSTEXPR20 To memory_cast (const From &value) noexcept
 执行内存层的类型转换

详细描述

低级内存操作函数集合

函数说明

◆ memory_cast()

template<typename To, typename From>
MSTL_NODISCARD MSTL_CONSTEXPR20 To memory_cast ( const From & value)
noexcept

执行内存层的类型转换

模板参数
To目标类型
From源类型
参数
value要转换的值
返回
转换后的值
注解
要求两个类型大小相同且都是平凡可复制的。

将源类型的位表示重新解释为目标类型的表示。

在文件 memory.hpp295 行定义.

引用了 _MSTL , 以及 memory_copy().

◆ memory_compare() [1/2]

template<typename T>
MSTL_PURE_FUNCTION MSTL_CONSTEXPR14 int memory_compare ( const T & lhs,
const T & rhs )
noexcept

比较两个内存区域的内容

模板参数
T比较类型
参数
lhs左侧内存指针
rhs右侧内存指针
返回
比较结果:
  • 正数:左侧内存大于右侧内存
  • 负数:左侧内存小于右侧内存
  • 0:两个内存区域相等

在文件 memory.hpp145 行定义.

引用了 _MSTL , 以及 memory_compare().

◆ memory_compare() [2/2]

MSTL_PURE_FUNCTION MSTL_CONSTEXPR14 int memory_compare ( const void * lhs,
const void * rhs,
size_t count )
noexcept

比较两个内存区域的内容

参数
lhs左侧内存指针
rhs右侧内存指针
count要比较的字节数
返回
比较结果:
  • 正数:左侧内存大于右侧内存
  • 负数:左侧内存小于右侧内存
  • 0:两个内存区域相等

在文件 memory.hpp119 行定义.

引用了 count().

被这些函数引用 memory_compare().

◆ memory_copy() [1/2]

template<typename T>
MSTL_CONSTEXPR14 void * memory_copy ( T *MSTL_RESTRICT dest,
const T *MSTL_RESTRICT src )
noexcept

从源内存复制到目标内存

模板参数
T目标类型
参数
dest目标内存指针
src源内存指针
返回
目标内存的起始指针,如果参数无效则返回nullptr
注解
使用restrict关键字优化,要求源和目标内存不重叠,否则将产生未定义行为。

在文件 memory.hpp55 行定义.

引用了 _MSTL , 以及 memory_copy().

◆ memory_copy() [2/2]

MSTL_CONSTEXPR14 void * memory_copy ( void *MSTL_RESTRICT dest,
const void *MSTL_RESTRICT src,
size_t count )
noexcept

从源内存复制到目标内存

参数
dest目标内存指针
src源内存指针
count要复制的字节数
返回
目标内存的起始指针,如果参数无效则返回nullptr
注解
使用restrict关键字优化,要求源和目标内存不重叠,否则将产生未定义行为。

在文件 memory.hpp30 行定义.

引用了 count().

被这些函数引用 atomic_load_any(), exception::exception(), exception::exception(), memory_cast(), memory_copy(), exception::operator=() , 以及 exception::operator=().

◆ memory_copy_offset()

MSTL_CONSTEXPR14 void * memory_copy_offset ( void *MSTL_RESTRICT dest,
const void *MSTL_RESTRICT src,
size_t count )
noexcept

从源内存复制到目标内存并返回复制结束位置

参数
dest目标内存指针
src源内存指针
count要复制的字节数
返回
目标内存复制结束后的下一个位置指针,如果参数无效则返回nullptr
注解
使用restrict关键字优化,要求源和目标内存不重叠,否则将产生未定义行为。

在文件 memory.hpp68 行定义.

引用了 count().

◆ memory_copy_until()

MSTL_CONSTEXPR14 void * memory_copy_until ( void * dest,
const void * src,
const byte_t value,
size_t count )
noexcept

从源内存复制到目标内存,直到遇到特定字节

参数
dest目标内存指针
src源内存指针
value停止字节
count最大复制字节数
返回
目标内存中停止字符后的下一个位置指针,如果没有找到字节则返回nullptr

在文件 memory.hpp90 行定义.

引用了 count().

◆ memory_find()

MSTL_PURE_FUNCTION MSTL_CONSTEXPR14 const void * memory_find ( const void * dest,
const byte_t value,
size_t count )
noexcept

在内存中搜索特定字节

参数
dest要搜索的内存指针
value要搜索的字节
count要搜索的字节数
返回
指向第一个匹配字节的指针,如果没有找到则返回nullptr

在文件 memory.hpp234 行定义.

引用了 count().

◆ memory_find_pattern()

MSTL_CONSTEXPR14 const void * memory_find_pattern ( const void * data,
const size_t data_len,
const void * pattern,
const size_t pattern_len )
noexcept

在内存中搜索子模式

参数
data要搜索的内存指针
data_len要搜索的内存长度
pattern要搜索的模式指针
pattern_len模式长度
返回
指向第一个匹配模式起始位置的指针,如果没有找到则返回nullptr

在文件 memory.hpp255 行定义.

引用了 data().

◆ memory_move()

MSTL_CONSTEXPR14 void * memory_move ( void * dest,
const void * src,
size_t count )
noexcept

从源内存移动数据到目标内存

参数
dest目标内存指针
src源内存指针
count要移动的字节数
返回
目标内存的起始指针,如果参数无效则返回nullptr
注解
支持重叠区域,当dest < src时从前向后复制,当dest > src时从后向前复制。

在文件 memory.hpp158 行定义.

引用了 count().

◆ memory_set()

MSTL_CONSTEXPR14 void * memory_set ( void * dest,
const byte_t value,
size_t count )
noexcept

使用指定字节填充内存区域

参数
dest目标内存指针
value填充字节
count要填充的字节数
返回
目标内存的起始指针,如果参数无效则返回nullptr

在文件 memory.hpp186 行定义.

引用了 count().

◆ memory_zero() [1/2]

template<typename T>
MSTL_CONSTEXPR14 void memory_zero ( T * dest)
noexcept

将内存区域清零

模板参数
T目标类型
参数
dest目标内存指针

清零内存区域。如果参数无效则不执行任何操作。

在文件 memory.hpp222 行定义.

引用了 _MSTL , 以及 memory_zero().

◆ memory_zero() [2/2]

MSTL_CONSTEXPR14 void memory_zero ( void * dest,
const size_t count )
noexcept

将内存区域清零

参数
dest目标内存指针
count要清零的字节数

清零内存区域。如果参数无效则不执行任何操作。

在文件 memory.hpp205 行定义.

引用了 count().

被这些函数引用 memory_zero().