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

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

函数

template<typename Iterator1, typename Iterator2, enable_if_t< is_ranges_fwd_iter_v< Iterator2 >, int > = 0>
constexpr Iterator2 neforce::uninitialized_copy (Iterator1 first, Iterator1 last, Iterator2 result)
 复制元素到未初始化内存
template<typename Iterator1, typename Iterator2, enable_if_t< is_ranges_fwd_iter_v< Iterator2 >, int > = 0>
constexpr Iterator2 neforce::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>
constexpr void neforce::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>
constexpr Iterator neforce::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>
constexpr Iterator2 neforce::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>
constexpr Iterator2 neforce::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>
Iterator2 neforce::uninitialized_copy ( Iterator1 first,
Iterator1 last,
Iterator2 result )
constexpr

复制元素到未初始化内存

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

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

在文件 uninitialized.hpp90 行定义.

引用了 uninitialized_copy().

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

◆ uninitialized_copy_n()

template<typename Iterator1, typename Iterator2, enable_if_t< is_ranges_fwd_iter_v< Iterator2 >, int > = 0>
Iterator2 neforce::uninitialized_copy_n ( Iterator1 first,
size_t count,
Iterator2 result )
constexpr

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

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

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

在文件 uninitialized.hpp156 行定义.

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

被这些函数引用 neforce::basic_string< char >::append() , 以及 uninitialized_copy_n().

◆ uninitialized_fill()

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

在未初始化内存上填充值

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

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

在文件 uninitialized.hpp218 行定义.

引用了 uninitialized_fill().

被这些函数引用 uninitialized_fill().

◆ uninitialized_fill_n()

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

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

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

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

在文件 uninitialized.hpp288 行定义.

引用了 uninitialized_fill_n().

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

◆ uninitialized_move()

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

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

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

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

在文件 uninitialized.hpp359 行定义.

引用了 uninitialized_move().

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

◆ 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>
Iterator2 neforce::uninitialized_move_n ( Iterator1 first,
size_t count,
Iterator2 result )
constexpr

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

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

在文件 uninitialized.hpp424 行定义.

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

被这些函数引用 uninitialized_move_n().