在 C++ 中,放置新和复制构造函数实现复制赋值运算符,这是一个好的做法吗?
作者:Theo Mars 提问时间:12/28/2021
给定代码 struct Foo{ Foo(const Foo &other){ i = other.i; }; Foo &operator=(const Foo &other){ if(...
Placement-New 问答列表
作者:Theo Mars 提问时间:12/28/2021
给定代码 struct Foo{ Foo(const Foo &other){ i = other.i; }; Foo &operator=(const Foo &other){ if(...
作者:getsoubl 提问时间:11/21/2022
我正在阅读有关 std::launder 以及何时使用以避免 UB 的 p0532r0。 下面有个例子。 template <typename T> class coreoptional { ...
作者:Anurag Vohra 提问时间:3/1/2023
这个问题在这里已经有答案了: 如何正确释放新放置分配的内存? (4 个答案) 9个月前关闭。 这是我在实际代码中面临的问题的最小工作示例。 #include <iostream> namespa...
作者:Dr. Gut 提问时间:5/31/2023
这个问题在这里已经有答案了: 使用特殊复制赋值运算符而不是简单的析构函数和就地构造函数的原因 (2 个答案) 6个月前关闭。 在 C++ 中,您可以通过销毁然后重新创建另一个相同类型的对象来重用对象...
作者: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...