placement-new

placement-new

文章 0 浏览 7

销毁然后使用相同的变量构造新对象

有时重新开始是件好事。在 C++ 中,我可以采用以下简单的操作: { T x(31, Blue, false); x.~T(); // enough with the old x ::new (&x) T(22, Brown,…

小嗲 2024-12-26 11:37:40 4 0

数组放置新需要缓冲区中未指定的开销?

C++11 Feb 草案的 5.3.4 [expr.new] 给出了示例: new(2,f) T[5] 导致调用 operator new[](sizeof(T)*5+y,2,f) . 这里,x和y是非负未指定值,表示数组…

森林很绿却致人迷途 2024-12-24 19:59:13 5 0

是否将指针强制转换为“void*”?调用placement new 时有什么影响吗?

我正在审查自定义容器的代码,其中的某些部分创建如下所示的元素: ::new( (void*)&buffer[index] ) CStoredType( other ); 部分这样做: ::new( &buf…

终止放荡 2024-12-20 12:16:49 3 0

使用放置 new[] 有什么问题吗?做

考虑下面的程序。它是由一个复杂的案例简化而来的。除非我删除 Obj 类中的虚拟析构函数,否则它无法删除先前分配的内存。我不明白为什么程序输出的两…

沉睡月亮 2024-12-18 01:52:42 6 0

删除这个并放置新的虚拟派生类

class base { int a; protected: template class derived; public: base() {} virtual ~base() {} virtual void func() {} static base* maker(); }; …

南街九尾狐 2024-12-16 19:30:44 6 0

通过放置 new 来延迟真正的基类构建

我问以下方法是否(以及为什么)a)合法且b)道德。我询问的重点是 C++03,但也欢迎有关 C++11 的注释。这个想法是为了防止本身可以默认构造的派生类…

唱一曲作罢 2024-12-13 15:26:04 6 0

使用 new、malloc 和 free 布局

基本上,我有一个使用 malloc 分配的内存块,我想开始使用placement new 将对象放入其中。我知道当我删除这些对象时,必须显式调用它们的析构函数,但…

假情假意假温柔 2024-12-13 04:01:14 6 0

Placement new 来初始化就地对象

我最近遇到了一种相当有趣的序列化方法,该方法利用未初始化变量的透明度(编译器中常见的未定义行为?)来实现“高效”反序列化。 内存被分配并分配…

橘味果▽酱 2024-12-13 02:53:16 5 0

放置新的中断常量和引用?

根据我对 href="https://stackoverflow.com/questions/7580635/how-to-copy-or-swap-objects-of-a-type-that-c​​ontains-members-that-are-referenc…

迷迭香的记忆 2024-12-07 01:37:35 9 0

在同一地址多次放置 new 是否定义明确/合法?

(注意:这个问题的动机是试图提出预处理器黑客技术来生成无操作分配来回答另一个问题: 接受新对象的宏 ...所以请记住这一点!) 这是一个人为的类:…

哆兒滾 2024-12-06 05:49:51 6 0

C++ 中的放置新运算符是什么? java有吗?

我听说过 C++ 的放置新运算符。我很困惑它是什么。不过,我可以在 stackoverflow 中的一个问题下看到它可以在哪里使用。我也很困惑java中是否有这个。…

笑咖 2024-12-04 17:42:16 5 0

我可以在 operator= 中使用放置 new(this) 吗?

背景: 我有一个包含许多变量的复杂类。我有一个健全且经过测试的复制构造函数: Applepie::Applepie( const Applepie &copy) : m_crust(copy.m_crust…

寒江雪… 2024-12-01 05:25:42 8 0

我可以对用新放置分配的指针调用delete吗?

我们可以对分配有placement new的指针调用delete吗?如果没有那为什么?请详细解释一下。 我知道没有放置删除。但我想知道为什么只是删除操作者不能删…

揪着可爱 2024-11-29 15:53:03 7 0

如何为具有内部放置 new 的类实现安全复制构造函数(使用 std::string)

这是我的代码: struct RS_Token { char id; char cleanup; unsigned char array[sizeof (std::string) > sizeof (double) ? sizeof (std::string) : …

寄居人 2024-11-29 00:53:53 6 0

新建和删除放置

删除此处分配的所有内存的正确方法是什么? const char* charString = "Hello, World"; void *mem = ::operator new(sizeof(Buffer) + strlen(charStr…

放赐 2024-11-25 16:34:59 8 0
更多

推荐作者

十二

文章 0 评论 0

飞烟轻若梦

文章 0 评论 0

OPleyuhuo

文章 0 评论 0

wxb0109

文章 0 评论 0

旧城空念

文章 0 评论 0

-小熊_

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文