NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
载入中...
搜索中...
未找到
内存操作函数

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

函数

constexpr void * neforce::memory_copy (void *__restrict dest, const void *__restrict src, size_t count) noexcept
 从源内存复制到目标内存
template<typename T>
constexpr void * neforce::memory_copy (T *__restrict dest, const T *__restrict src) noexcept
 从源内存复制到目标内存
constexpr void * neforce::memory_copy_offset (void *__restrict dest, const void *__restrict src, size_t count) noexcept
 从源内存复制到目标内存并返回复制结束位置
constexpr void * neforce::memory_copy_until (void *dest, const void *src, const byte_t value, size_t count) noexcept
 从源内存复制到目标内存,直到遇到特定字节
constexpr int neforce::memory_compare (const void *lhs, const void *rhs, size_t count) noexcept
 比较两个内存区域的内容
template<typename T>
constexpr int neforce::memory_compare (const T &lhs, const T &rhs) noexcept
 比较两个内存区域的内容
constexpr void * neforce::memory_move (void *dest, const void *src, size_t count) noexcept
 从源内存移动数据到目标内存
constexpr void * neforce::memory_set (void *dest, const byte_t value, size_t count) noexcept
 使用指定字节填充内存区域
constexpr void neforce::memory_zero (void *dest, const size_t count) noexcept
 将内存区域清零
template<typename T>
constexpr void neforce::memory_zero (T *dest) noexcept
 将内存区域清零
constexpr const void * neforce::memory_find (const void *dest, const byte_t value, size_t count) noexcept
 在内存中搜索特定字节
constexpr const void * neforce::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>
constexpr To neforce::memory_cast (const From &value) noexcept
 执行内存层的类型转换

详细描述

低级内存操作函数集合

函数说明

◆ memory_cast()

template<typename To, typename From>
To neforce::memory_cast ( const From & value)
nodiscardconstexprnoexcept

执行内存层的类型转换

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

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

在文件 memory/memory.hpp310 行定义.

引用了 is_default_constructible_v, is_trivially_copyable_v, memory_cast() , 以及 memory_copy().

被这些函数引用 memory_cast().

◆ memory_compare() [1/2]

template<typename T>
int neforce::memory_compare ( const T & lhs,
const T & rhs )
constexprnoexcept

比较两个内存区域的内容

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

在文件 memory/memory.hpp157 行定义.

引用了 memory_compare().

◆ memory_compare() [2/2]

int neforce::memory_compare ( const void * lhs,
const void * rhs,
size_t count )
constexprnoexcept

比较两个内存区域的内容

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

在文件 memory/memory.hpp125 行定义.

引用了 count() , 以及 memory_compare().

被这些函数引用 atomic_cmpexch_strong_any(), neforce::narrow_char_traits< CharT, IntT >::compare(), memory_compare() , 以及 memory_compare().

◆ memory_copy() [1/2]

template<typename T>
void * neforce::memory_copy ( T *__restrict dest,
const T *__restrict src )
constexprnoexcept

从源内存复制到目标内存

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

在文件 memory/memory.hpp59 行定义.

引用了 memory_copy().

◆ memory_copy() [2/2]

void * neforce::memory_copy ( void *__restrict dest,
const void *__restrict src,
size_t count )
constexprnoexcept

从源内存复制到目标内存

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

在文件 memory/memory.hpp29 行定义.

引用了 count() , 以及 memory_copy().

被这些函数引用 atomic_load_any(), neforce::base_char_traits< CharT, IntT >::copy(), neforce::exception::exception(), neforce::exception::exception(), memory_cast(), memory_copy(), memory_copy(), neforce::exception::operator=() , 以及 neforce::exception::operator=().

◆ memory_copy_offset()

void * neforce::memory_copy_offset ( void *__restrict dest,
const void *__restrict src,
size_t count )
constexprnoexcept

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

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

在文件 memory/memory.hpp71 行定义.

引用了 count() , 以及 memory_copy_offset().

被这些函数引用 memory_copy_offset().

◆ memory_copy_until()

void * neforce::memory_copy_until ( void * dest,
const void * src,
const byte_t value,
size_t count )
constexprnoexcept

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

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

在文件 memory/memory.hpp95 行定义.

引用了 count() , 以及 memory_copy_until().

被这些函数引用 memory_copy_until().

◆ memory_find()

const void * neforce::memory_find ( const void * dest,
const byte_t value,
size_t count )
constexprnoexcept

在内存中搜索特定字节

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

在文件 memory/memory.hpp249 行定义.

引用了 count() , 以及 memory_find().

被这些函数引用 neforce::narrow_char_traits< CharT, IntT >::find() , 以及 memory_find().

◆ memory_find_pattern()

const void * neforce::memory_find_pattern ( const void * data,
const size_t data_len,
const void * pattern,
const size_t pattern_len )
constexprnoexcept

在内存中搜索子模式

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

在文件 memory/memory.hpp272 行定义.

引用了 data() , 以及 memory_find_pattern().

被这些函数引用 memory_find_pattern().

◆ memory_move()

void * neforce::memory_move ( void * dest,
const void * src,
size_t count )
constexprnoexcept

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

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

在文件 memory/memory.hpp169 行定义.

引用了 count() , 以及 memory_move().

被这些函数引用 neforce::dynamic_buffer::consume(), memory_move() , 以及 neforce::base_char_traits< CharT, IntT >::move().

◆ memory_set()

void * neforce::memory_set ( void * dest,
const byte_t value,
size_t count )
constexprnoexcept

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

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

在文件 memory/memory.hpp198 行定义.

引用了 count() , 以及 memory_set().

被这些函数引用 neforce::narrow_char_traits< CharT, IntT >::assign() , 以及 memory_set().

◆ memory_zero() [1/2]

template<typename T>
void neforce::memory_zero ( T * dest)
constexprnoexcept

将内存区域清零

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

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

在文件 memory/memory.hpp238 行定义.

引用了 memory_zero().

◆ memory_zero() [2/2]

void neforce::memory_zero ( void * dest,
const size_t count )
constexprnoexcept

将内存区域清零

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

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

在文件 memory/memory.hpp219 行定义.

引用了 count() , 以及 memory_zero().

被这些函数引用 memory_zero(), memory_zero() , 以及 neforce::uuid::uuid().