放置 - 新 问答列表

是否允许显式调用析构函数,然后在具有固定生存期的变量上放置新?

作者:yeputons 提问时间:3/5/2017

我知道显式调用析构函数可能会导致由于双重析构函数调用而导致未定义的行为,如下所示: #include <vector> int main() { std::vector<int> foo(10)...

std::vector&lt;std::aligned_storage&gt;格式不正确吗?

作者:blonded04 提问时间:3/2/2023

当我尝试操纵时,地址消毒器会发疯:std::vector<std::aligned_storage<sizeof(T), alignof(T)>> vec 有时,在向量元素处放置新位置效果很好,除非...

列表类在析构函数中崩溃,为什么?

作者:Dov 提问时间:4/28/2023

以下代码使用 placement new 来移动每个值。 复制构造函数和运算符 = 已被删除,因此分配新内存和复制旧内存的唯一位置是在 add 函数中。 #include <iostream> #i...

删除使用 placement new 构造的数组元素

作者:Yousef Irshaid 提问时间:5/22/2023

当我们创建一个类类型的动态数组时,我正在研究这种情况。据我所知,在直接调用类的非默认构造函数时,没有创建数组的方法。一种方法是正常初始化数组,然后循环并为每个对象调用非默认构造函数,但我认为这种方法存...

安置新的基本实现是什么?

作者:akanesora 提问时间:7/6/2023

T *p = ::operator new(sizeof(T)); new (p) T; 我想知道该语法是如何工作的,因为放置 new 被声明为: void* operator new(std:...

未分配任何内容的程序的清理程序泄漏消息

作者:Patrick Fromberg 提问时间:7/22/2023

我有一些代码几乎什么都不做,但它以一种复杂的方式这样做。最重要的是,它不分配任何东西。所有数据都在堆栈上。它适用于许多版本的 gcc 和 clang,无论是在我的计算机上还是在 Godbolds 编译...


共6条 当前第1页