【发布时间】:2018-05-09 03:53:43
【问题描述】:
相关:Deprecation of std::allocator<void>.
对于std::vector 和std::list(强调我的)都可以找到关于模板参数Allocator 的以下描述:
一个分配器,用于获取/释放内存并 构造/销毁该内存中的元素。类型必须满足 分配器的要求。 如果行为未定义
Allocator::value_type与T不一样。
最后一句话对我来说没有意义。如果需要特定的value_type,难道不能只做一个分配器重新绑定吗?
【问题讨论】:
-
我实际上在标准中找不到这个要求。我要么错过它,要么这里的 cpp 引用不正确。
-
@SergeyA 这在 [container.requirements.general] 中的“分配器感知容器要求”表中间接给出,
allocator_type表达式的断言/注释。 -
@1201ProgramAlarm,哦,一般容器要求!谢谢。
-
嗯,我想还有一件更疯狂的事情要添加到关于分配器的列表中。这特别奇怪,因为
std::list几乎肯定会重新绑定到内部节点类型
标签: c++ containers language-lawyer c++-standard-library allocator