Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 放置和非放置分配器_C++_Language Lawyer_Placement - Fatal编程技术网

C++ 放置和非放置分配器

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

配售和非配售分配/解除配售功能是什么?我一直在读第二节。N3797的第3.7.4.2节,并介绍了配售和非配售分配/解除分配功能的概念。例如:

只有一个参数的全局运算符delete是常用的 非放置-释放功能

我找不到这些概念的定义,我假设非放置是具有以下特征之一的函数:

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是的,这正是我想要的。谢谢。新表达式不是分配函数。这些概念相互关联,但并不完全相同。