|
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 > >) |
| 销毁迭代器范围内的对象序列 | |
在指定内存位置构造对象
|
noexcept |
在指定内存位置构造对象
| T | 要构造的对象类型 |
| Args | 构造参数类型 |
| ptr | 指向已分配内存的指针 |
| args | 构造参数 |
使用定位new在指定内存位置构造对象,支持完美转发构造参数。 仅当T可以从Args...构造时才启用此重载。
在文件 construct.hpp 第 34 行定义.
被这些函数引用 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().
|
noexcept |
销毁迭代器范围内的对象序列
| Iterator | 迭代器类型 |
| first | 范围的起始迭代器 |
| last | 范围的结束迭代器 |
遍历迭代器范围,对每个元素调用析构函数。 仅当迭代器值类型非平凡可析构时才启用此重载。
在文件 construct.hpp 第 63 行定义.
|
noexcept |
销毁单个对象
| T | 对象类型 |
| pointer | 指向要销毁对象的指针 |
显式调用对象的析构函数,但不释放内存。
在文件 construct.hpp 第 47 行定义.
被这些函数引用 destroy() , 以及 temporary_buffer< Iterator >::~temporary_buffer().