C++ 放置和非放置分配器
配售和非配售分配/解除配售功能是什么?我一直在读第二节。N3797的第3.7.4.2节,并介绍了配售和非配售分配/解除分配功能的概念。例如: 只有一个参数的全局运算符delete是常用的 非放置-释放功能 我找不到这些概念的定义,我假设非放置是具有以下特征之一的函数:C++ 放置和非放置分配器,c++,language-lawyer,placement,C++,Language Lawyer,Placement,配售和非配售分配/解除配售功能是什么?我一直在读第二节。N3797的第3.7.4.2节,并介绍了配售和非配售分配/解除分配功能的概念。例如: 只有一个参数的全局运算符delete是常用的 非放置-释放功能 我找不到这些概念的定义,我假设非放置是具有以下特征之一的函数: void* operator new(std::size_t); void* operator new[](std::size_t); void operator delete(void*); void operator dele
void* operator new(std::size_t);
void* operator new[](std::size_t);
void operator delete(void*);
void operator delete[](void*);
void operator delete(void*, std::size_t) noexcept;
void operator delete[](void*, std::size_t) noexcept;
我理解正确了吗?第5.3.4.13节中的N3797中有新放置的定义: 新的放置语法用于向 分配功能。如果使用,将在一个磁盘上执行重载解析 通过组合参数列表创建的函数调用,该参数列表由 中的第一个参数和表达式请求的空间量 新表达式的新放置部分是第二个和第二个表达式 随后的论点。这些参数中的第一个具有类型 std::size\u t和其余参数具有相应的类型 新位置中表达式的
它们允许您在已经分配的内存上构造对象。vector使用它。可能是@NeilKirk的复制品。你为什么这么认为?也就是说,你能提供标准的参考吗?不。我不知道这样做是否是强制性的,但我知道很多实现都是这样做的。@Niall是的,这正是我想要的。谢谢。新表达式不是分配函数。这些概念相互关联,但并不完全相同。