YSTest: placement.hpp 文件参考

YSTest PreAlpha_b800_20170810 The YSLib Test Project

- 首页
- 相关页面
- 模块
- 命名空间
- 类
- 文件

- 文件列表
- 文件成员

类 | 命名空间 | 宏定义 | 函数 | 变量
placement.hpp 文件参考
YBaseLib » YStandardExtend

放置对象管理操作。 更多...

`#include "addressof.hpp"`
`#include <new>`
`#include <iterator>`
`#include "deref_op.hpp"`
`#include "cassert.h"`
placement.hpp 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

## 类

struct | ystdex::default_init_t
| 默认初始化标记。 更多...
struct | ystdex::value_init_t
| 值初始化标记。 更多...
struct | ystdex::in_place_tag
| 原地标记类型。 更多...
class | ystdex::default_init_allocator< _type, _tAlloc >
| 默认初始化构造分配器。 更多...
struct | ystdex::default_init_allocator< _type, _tAlloc >::rebind< _tOther >
struct | ystdex::placement_delete< _type, _tPointer >
| 放置存储的对象删除器：释放时调用伪析构函数。 更多...
struct | ystdex::tagged_value< _tToken, _type >
| 带记号标记的可选值。 更多...

## 命名空间

| ystdex
| <functional> 特性测试宏。

## 宏定义

#define | YB_Impl_UninitGuard_Begin
#define | YB_Impl_UninitGuard_End

## 类型定义

template<typename _type , typename _tPointer = _type*>
using | ystdex::placement_ptr = std::unique_ptr< _type, placement_delete< _type, _tPointer >>
| 独占放置存储的对象所有权的指针。 更多...

## 函数

template<typename _type >
void | ystdex::construct_default_in (_type &obj)
| 以默认初始化原地构造。 更多...
template<typename _type , typename... _tParams>
void | ystdex::construct_in (_type &obj, _tParams &&...args)
| 以值初始化原地构造。 更多...
template<typename _type >
void | ystdex::destruct_in (_type &obj)
| 原地析构。 更多...
template<typename _tIter >
void | ystdex::destruct (_tIter i)
| 析构迭代器指向的对象。 更多...
template<typename _tIter >
void | ystdex::destruct_range (_tIter first, _tIter last)
| 析构d迭代器范围内的对象序列。 更多...
template<typename _tFwd >
void | ystdex::uninitialized_value_construct (_tFwd first, _tFwd last)
template<typename _tFwd , typename _tSize >
_tFwd | ystdex::uninitialized_value_construct_n (_tFwd first, _tSize n)
template<typename _type , typename _tObj >
_type * | ystdex::construct_default_within (_tObj &obj)
| 以默认初始化在对象中构造。 更多...
template<typename _type , typename _tObj , typename... _tParams>
_type * | ystdex::construct_within (_tObj &obj, _tParams &&...args)
| 以值初始化在对象中构造。 更多...
template<typename _tIter , typename... _tParams>
void | ystdex::construct (_tIter i, _tParams &&...args)
| 使用指定参数在迭代器指定的位置以指定参数初始化构造对象。 更多...
template<typename _tIter >
void | ystdex::construct_default (_tIter i)
| 使用指定参数在迭代器指定的位置以默认初始化构造对象。 更多...
template<typename _tIter , typename... _tParams>
void | ystdex::construct_range (_tIter first, _tIter last, _tParams &&...args)
| 使用指定的参数重复构造迭代器范围内的对象序列。 更多...
template<typename _type >
void | ystdex::destroy_at (_type *location)
| 原地销毁。 更多...
template<typename _tFwd >
void | ystdex::destroy (_tFwd first, _tFwd last)
template<typename _tFwd , typename _tSize >
_tFwd | ystdex::destroy_n (_tFwd first, _tSize n)
template<typename _tFwd >
void | ystdex::uninitialized_default_construct (_tFwd first, _tFwd last)
| 在范围内未初始化放置构造。 更多...
template<typename _tFwd , typename _tSize >
_tFwd | ystdex::uninitialized_default_construct_n (_tFwd first, _tSize n)
template<typename _tIn , class _tFwd >
_tFwd | ystdex::uninitialized_move (_tIn first, _tIn last, _tFwd result)
| 转移初始化范围。 更多...
template<typename _tIn , typename _tSize , class _tFwd >
std::pair< _tIn, _tFwd > | ystdex::uninitialized_move_n (_tIn first, _tSize n, _tFwd result)
template<typename _tFwd , typename... _tParams>
void | ystdex::uninitialized_construct (_tFwd first, _tFwd last, _tParams &&...args)
| 在迭代器指定的未初始化的范围上构造对象。 更多...
template<typename _tFwd , typename _tSize , typename... _tParams>
void | ystdex::uninitialized_construct_n (_tFwd first, _tSize n, _tParams &&...args)

## 变量

const struct ystdex::default_init_t | ystdex::default_init
const struct ystdex::value_init_t | ystdex::value_init
using | ystdex::in_place_t = in_place_tag(&)(empty_base<>)
| 原地空标记类型。 更多...
template<typename _type >
using | ystdex::in_place_type_t = in_place_tag(&)(empty_base< _type >)
| 原地类型标记模板。 更多...
template<size_t _vIdx>
using | ystdex::in_place_index_t = in_place_tag(&)(size_t_< _vIdx >)
| 原地索引标记模板。 更多...
in_place_tag | ystdex::in_place (empty_base<>)
| 原地标记函数。 更多...
template<typename _type >
in_place_tag | ystdex::in_place (empty_base< _type >)
template<size_t _vIdx>
in_place_tag | ystdex::in_place (size_t_< _vIdx >)

## 详细描述

放置对象管理操作。

版本
  r580

作者
  FrankHB frank.nosp@m.hb19.nosp@m.89@gm.nosp@m.ail..nosp@m.com

自从
  build 715

创建时间:
  2016-08-03 18:56:31 +0800

修改时间:
  2016-09-20 09:58 +0800

文本编码:
  UTF-8

模块名称:
  YStandardEx::Placement

提供放置对象分配和释放操作，包括 WG21 P0040R3 提议的部分接口。

在文件 placement.hpp 中定义.

## 宏定义说明

#define YB_Impl_UninitGuard_Begin

值:
auto i = first; \
\
try \
{
YSLib::i
return i
Definition: YCoreUtilities.h:176

在文件 placement.hpp 第 303 行定义.

参考自 ystdex::uninitialized_construct(), ystdex::uninitialized_construct_n(), ystdex::uninitialized_default_construct(), ystdex::uninitialized_default_construct_n(), ystdex::uninitialized_move(), ystdex::uninitialized_move_n(), ystdex::uninitialized_value_construct() , 以及 ystdex::uninitialized_value_construct_n().

#define YB_Impl_UninitGuard_End

值:
} \
catch(...) \
{ \
ystdex::destruct_range(first, i); \
throw; \
}
YSLib::i
return i
Definition: YCoreUtilities.h:176
ystdex::destruct_range
void destruct_range(_tIter first, _tIter last)
析构d迭代器范围内的对象序列。
Definition: placement.hpp:295

在文件 placement.hpp 第 310 行定义.

参考自 ystdex::uninitialized_construct(), ystdex::uninitialized_construct_n(), ystdex::uninitialized_default_construct(), ystdex::uninitialized_default_construct_n(), ystdex::uninitialized_move(), ystdex::uninitialized_move_n(), ystdex::uninitialized_value_construct() , 以及 ystdex::uninitialized_value_construct_n().