C++ 概念: Erasable

来自cppreference.com
< cpp‎ | concept
 
 
 

指定对象类型对象能以给定的分配器 (Allocator) 销毁。

[编辑] 要求

类型 T 从其 value_type 等同于 T容器 (Container) X 可擦除 (Erasable) ,若给定

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

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

下列表达式为良式:

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

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

[编辑] 注意

所有标准库容器要求其元素满足可擦除 (Erasable) 。

对于默认分配器,此要求等价于 p->~T() 的合法性,这接受有可访问析构函数的类类型和所有标量类型,但拒绝数组类型、函数类型、引用类型和 void 。

[编辑] 参阅

可复制插入 (CopyInsertable)
可移动插入 (MoveInsertable)
可原位构造 (EmplaceConstructible)
可析构 (Destructible)