Placement-New 问答列表

在 C++ 中,放置新和复制构造函数实现复制赋值运算符,这是一个好的做法吗?

作者:Theo Mars 提问时间:12/28/2021

给定代码 struct Foo{ Foo(const Foo &other){ i = other.i; }; Foo &operator=(const Foo &other){ if(...

std::launder 和未定义的行为

作者:getsoubl 提问时间:11/21/2022

我正在阅读有关 std::launder 以及何时使用以避免 UB 的 p0532r0。 下面有个例子。 template <typename T> class coreoptional { ...

为什么这个程序中存在内存泄漏,我该如何解决它,给定约束(对包含 std::string 的对象使用 malloc 和 free)?[复制]

作者:Anurag Vohra 提问时间:3/1/2023

这个问题在这里已经有答案了: 如何正确释放新放置分配的内存? (4 个答案) 9个月前关闭。 这是我在实际代码中面临的问题的最小工作示例。 #include <iostream> namespa...

在自身之上构造对象 [复制]

作者:Dr. Gut 提问时间:5/31/2023

这个问题在这里已经有答案了: 使用特殊复制赋值运算符而不是简单的析构函数和就地构造函数的原因 (2 个答案) 6个月前关闭。 在 C++ 中,您可以通过销毁然后重新创建另一个相同类型的对象来重用对象...

type-punning:省略放置 new 和析构函数

作者:Oersted 提问时间:8/21/2023

已经有很多关于严格别名规则和类型双关语的帖子,但我找不到我可以理解的关于对象数组的解释。 我的目标是拥有一个用于存储对象数组的内存池非模板类。 基本上,我只需要在访问时知道实际类型:它可以被看作是一个...

当替换完整对象时,基类子对象的“透明替换”?

作者:JMC 提问时间:8/30/2023

请考虑以下代码片段: struct A { int n; }; struct B : A {}; B foo; new (&foo) B { {42} }; // the new B transpa...


共6条 当前第1页