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

在指定内存位置构造对象 更多...

函数

template<typename T, typename... Args>
MSTL_CONSTEXPR20 enable_if_t< is_constructible_v< T, Args... >, void * > construct (T *ptr, Args &&... args) noexcept(is_nothrow_constructible_v< T, Args... >)
 在指定内存位置构造对象
template<typename T>
MSTL_CONSTEXPR20 void destroy (T *pointer) noexcept(is_nothrow_destructible_v< T >)
 销毁单个对象
template<typename Iterator, enable_if_t< is_iter_v< Iterator > &&!is_trivially_destructible_v< iter_value_t< Iterator > >, int > = 0>
MSTL_CONSTEXPR20 void destroy (Iterator first, Iterator last) noexcept(is_nothrow_destructible_v< iter_value_t< Iterator > >)
 销毁迭代器范围内的对象序列

详细描述

在指定内存位置构造对象

函数说明

◆ construct()

template<typename T, typename... Args>
MSTL_CONSTEXPR20 enable_if_t< is_constructible_v< T, Args... >, void * > construct ( T * ptr,
Args &&... args )
noexcept

在指定内存位置构造对象

模板参数
T要构造的对象类型
Args构造参数类型
参数
ptr指向已分配内存的指针
args构造参数
返回
指向构造对象的void指针

使用定位new在指定内存位置构造对象,支持完美转发构造参数。 仅当T可以从Args...构造时才启用此重载。

在文件 construct.hpp34 行定义.

引用了 _MSTL , 以及 forward().

被这些函数引用 optional< T >::emplace(), optional< T >::emplace(), make_shared(), optional< T >::operator=(), optional< T >::operator=(), optional< T >::operator=(), optional< T >::operator=(), optional< T >::operator=(), optional< T >::operator=(), optional< T >::optional(), optional< T >::optional(), optional< T >::optional(), optional< T >::optional(), optional< T >::optional(), optional< T >::optional(), optional< T >::optional() , 以及 optional< T >::optional().

◆ destroy() [1/2]

template<typename Iterator, enable_if_t< is_iter_v< Iterator > &&!is_trivially_destructible_v< iter_value_t< Iterator > >, int > = 0>
MSTL_CONSTEXPR20 void destroy ( Iterator first,
Iterator last )
noexcept

销毁迭代器范围内的对象序列

模板参数
Iterator迭代器类型
参数
first范围的起始迭代器
last范围的结束迭代器

遍历迭代器范围,对每个元素调用析构函数。 仅当迭代器值类型非平凡可析构时才启用此重载。

在文件 construct.hpp63 行定义.

引用了 _MSTL , 以及 destroy().

◆ destroy() [2/2]

template<typename T>
MSTL_CONSTEXPR20 void destroy ( T * pointer)
noexcept

销毁单个对象

模板参数
T对象类型
参数
pointer指向要销毁对象的指针

显式调用对象的析构函数,但不释放内存。

在文件 construct.hpp47 行定义.

被这些函数引用 destroy() , 以及 temporary_buffer< Iterator >::~temporary_buffer().