C++ 具名要求: DefaultInsertable

来自cppreference.com
< cpp‎ | named req
 
 
 

指定类型实例能以给定的分配器原位默认构造。

[编辑] 要求

类型 T 可默认插入 (DefaultInsertable) 进入其 value_type 等同于 T容器 (Container) X ,若给定

A 分配器类型
m A 类型左值
p 容器所准备的 T* 类型指针

其中 X::allocator_type 等同于 std::allocator_traits<A>::rebind_alloc<T>

下列表达式为良式:

std::allocator_traits<A>::construct(m, p);


X 不具分配器,则项目定义为假设 Astd::allocator<T> ,除了不需要创建分配器对象,且不实例化 std::allocator 的用户定义特化。

[编辑] 注意

默认情况下,这会调用布置 new ,如用 ::new((void*)p) T() (即值初始化 p 所指向的对象)。若不欲值初始化,例如若对象是非类类型且不需要清零,则可通过提供定制的 Allocator::construct 避免。

[编辑] 参阅

可默认构造 (DefaultConstructible)
可复制插入 (CopyInsertable)
可移动插入 (MoveInsertable)
可原位构造 (EmplaceConstructible)
可擦除 (Erasable)