NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
未初始化内存操作

在未初始化内存上进行的安全操作 更多...

函数

template<typename Iterator1, typename Iterator2, enable_if_t< is_ranges_fwd_iter_v< Iterator2 >, int > = 0>
NEFORCE_CONSTEXPR20 Iterator2 uninitialized_copy (Iterator1 first, Iterator1 last, Iterator2 result)
 复制元素到未初始化内存
template<typename Iterator1, typename Iterator2, enable_if_t< is_ranges_fwd_iter_v< Iterator2 >, int > = 0>
NEFORCE_CONSTEXPR20 pair< Iterator1, Iterator2 > uninitialized_copy_n (Iterator1 first, size_t count, Iterator2 result)
 复制指定数量的元素到未初始化内存
template<typename Iterator, typename T, enable_if_t< is_ranges_fwd_iter_v< Iterator >, int > = 0>
NEFORCE_CONSTEXPR20 void uninitialized_fill (Iterator first, Iterator last, const T &x)
 在未初始化内存上填充值
template<typename Iterator, typename T, enable_if_t< is_ranges_fwd_iter_v< Iterator >, int > = 0>
NEFORCE_CONSTEXPR20 Iterator uninitialized_fill_n (Iterator first, size_t n, const T &x)
 在未初始化内存中用指定值填充指定数量的元素
template<typename Iterator1, typename Iterator2, enable_if_t< is_ranges_input_iter_v< Iterator1 > &&is_ranges_fwd_iter_v< Iterator2 >, int > = 0>
NEFORCE_CONSTEXPR20 Iterator2 uninitialized_move (Iterator1 first, Iterator1 last, Iterator2 result)
 在未初始化内存中移动元素
template<typename Iterator1, typename Iterator2, enable_if_t< is_ranges_input_iter_v< Iterator1 > &&is_ranges_fwd_iter_v< Iterator2 >, int > = 0>
NEFORCE_CONSTEXPR20 pair< Iterator1, Iterator2 > uninitialized_move_n (Iterator1 first, size_t count, Iterator2 result)
 在未初始化内存中移动指定数量的元素

详细描述

在未初始化内存上进行的安全操作

函数说明

◆ uninitialized_copy()

template<typename Iterator1, typename Iterator2, enable_if_t< is_ranges_fwd_iter_v< Iterator2 >, int > = 0>
NEFORCE_CONSTEXPR20 Iterator2 uninitialized_copy ( Iterator1 first,
Iterator1 last,
Iterator2 result )

复制元素到未初始化内存

模板参数
Iterator1输入迭代器类型
Iterator2输出迭代器类型
参数
first输入范围起始
last输入范围结束
result输出范围起始
返回
输出范围结束迭代器
异常
memory_exception当值类型为非平凡类型时,如果构造过程中发生异常

将范围 [first, last) 的元素复制到未初始化的内存区域 [result, ...)。 如果复制过程中抛出异常,已构造的元素会被析构。

在文件 uninitialized.hpp89 行定义.

被这些函数引用 vector< byte_t >::insert() , 以及 vector< byte_t >::operator=().

◆ uninitialized_copy_n()

template<typename Iterator1, typename Iterator2, enable_if_t< is_ranges_fwd_iter_v< Iterator2 >, int > = 0>
NEFORCE_CONSTEXPR20 pair< Iterator1, Iterator2 > uninitialized_copy_n ( Iterator1 first,
size_t count,
Iterator2 result )

复制指定数量的元素到未初始化内存

模板参数
Iterator1输入迭代器类型
Iterator2输出迭代器类型
参数
first输入起始
count要复制的元素数量
result输出起始
返回
pair<输入结束迭代器, 输出结束迭代器>
异常
memory_exception当值类型为非平凡类型时,如果构造过程中发生异常

从 first 开始复制 count 个元素到未初始化的内存区域。

在文件 uninitialized.hpp158 行定义.

引用了 count().

被这些函数引用 basic_string< char >::append().

◆ uninitialized_fill()

template<typename Iterator, typename T, enable_if_t< is_ranges_fwd_iter_v< Iterator >, int > = 0>
NEFORCE_CONSTEXPR20 void uninitialized_fill ( Iterator first,
Iterator last,
const T & x )

在未初始化内存上填充值

模板参数
Iterator迭代器类型
T值类型
参数
first范围起始
last范围结束
x要填充的值
异常
memory_exception当值类型为非平凡类型时,如果构造过程中发生异常

在未初始化的内存区域 [first, last) 上构造值为 x 的对象。 如果构造过程中抛出异常,已构造的元素会被析构。

在文件 uninitialized.hpp218 行定义.

被这些函数引用 vector< byte_t >::insert().

◆ uninitialized_fill_n()

template<typename Iterator, typename T, enable_if_t< is_ranges_fwd_iter_v< Iterator >, int > = 0>
NEFORCE_CONSTEXPR20 Iterator uninitialized_fill_n ( Iterator first,
size_t n,
const T & x )

在未初始化内存中用指定值填充指定数量的元素

模板参数
Iterator迭代器类型
T值类型
参数
first起始位置
n要填充的元素数量
x要填充的值
返回
填充后的结束迭代器
异常
memory_exception当值类型为非平凡类型时,如果构造过程中发生异常

类似于 fill_n(),但在未初始化内存上操作。

在文件 uninitialized.hpp284 行定义.

被这些函数引用 vector< byte_t >::assign(), deque< T, Alloc, BufSize >::insert() , 以及 vector< byte_t >::insert().

◆ uninitialized_move()

template<typename Iterator1, typename Iterator2, enable_if_t< is_ranges_input_iter_v< Iterator1 > &&is_ranges_fwd_iter_v< Iterator2 >, int > = 0>
NEFORCE_CONSTEXPR20 Iterator2 uninitialized_move ( Iterator1 first,
Iterator1 last,
Iterator2 result )

在未初始化内存中移动元素

模板参数
Iterator1输入迭代器类型
Iterator2输出迭代器类型
参数
first输入范围起始
last输入范围结束
result输出范围起始
返回
输出范围结束迭代器
异常
memory_exception当值类型为非平凡类型时,如果构造过程中发生异常

将范围 [first, last) 的元素移动到以 result 开始的未初始化内存区域。 使用移动构造函数构造对象,可能使源对象处于有效但未指定的状态。

在文件 uninitialized.hpp352 行定义.

被这些函数引用 vector< byte_t >::emplace(), vector< byte_t >::insert(), vector< byte_t >::reserve() , 以及 vector< byte_t >::shrink_to_fit().

◆ uninitialized_move_n()

template<typename Iterator1, typename Iterator2, enable_if_t< is_ranges_input_iter_v< Iterator1 > &&is_ranges_fwd_iter_v< Iterator2 >, int > = 0>
NEFORCE_CONSTEXPR20 pair< Iterator1, Iterator2 > uninitialized_move_n ( Iterator1 first,
size_t count,
Iterator2 result )

在未初始化内存中移动指定数量的元素

模板参数
Iterator1输入迭代器类型
Iterator2输出迭代器类型
参数
first输入起始迭代器
count要移动的元素数量
result输出范围起始
返回
pair<输入结束迭代器, 输出结束迭代器>
异常
memory_exception当值类型为非平凡类型时,如果构造过程中发生异常

在文件 uninitialized.hpp420 行定义.

引用了 count().